Je souhaite ajouter un horodatage aux noms de fichiers au fur et à mesure de la création des fichiers, mais la plupart des méthodes DateTime que j'ai essayées produisent quelque chose avec des espaces et des barres obliques. Par exemple:
Debug.WriteLine(DateTime.Now.ToString()); // <-- 9/19/2012 1:41:46 PM
Debug.WriteLine(DateTime.Now.ToShortTimeString()); // <-- 1:41 PM
Debug.WriteLine(DateTime.Now.ToShortDateString()); // <-- 9/19/2012
Debug.WriteLine(DateTime.Now.ToFileTime()); // <-- 129925501061462806
ToFileTime()
fonctionne mais n'est pas lisible par l'homme. Comment formater la sortie en un horodatage lisible par l'homme avec une date et une heure utilisables dans un nom de fichier ou une extension? De préférence quelque chose comme 2011-19-9--13-45-30
?
Vous pouvez utiliser ceci:
DateTime.Now.ToString("yyyy-dd-M--HH-mm-ss");
Je voudrais utiliser le format ISO 8601 , sans séparateurs:
DateTime.Now.ToString("yyyyMMddTHHmmss")
J'ai une situation similaire mais je veux un moyen cohérent pour pouvoir utiliser DateTime.Parse à partir du nom de fichier aussi, alors je suis allé avec
DateTime.Now.ToString("s").Replace(":", ".") // <-- 2016-10-25T16.50.35
Lorsque je veux analyser, je peux simplement inverser l'appel Remplacer. De cette façon, je n'ai pas à taper de contenu yymmdd ni à deviner quels formats sont autorisés par DateTime.Parse.
La liste ci-dessous des spécificateurs de format d'heure les plus couramment utilisés.,
dd - jour du mois, du 01 au 31.
[~ # ~] mm [~ # ~] - mois , de 01 à 12.
yyyy - année sous forme de nombre à quatre chiffres.
hh - heure , en utilisant une horloge 12 heures de 01 à 12.
mm - minute , de 00 à 59.
ss - seconde , de 00 à 59.
[~ # ~] hh [~ # ~] - heure , en utilisant une horloge 24 heures de 00 à 23.
tt - AM/PM désignateur.
En utilisant ce qui précède, vous pourrez créer un nom unique pour votre nom de fichier.
Ici, j'ai fourni un exemple
string fileName = "fileName_" + DateTime.Now.ToString("MM-dd-yyyy_hh-mm-ss-tt") + ".pdf";
[~ # ~] ou [~ # ~]
Si vous ne préférez pas utiliser de symboles, vous pouvez aussi essayer ceci.,
string fileName = "fileName_" + DateTime.Now.ToString("MMddyyyyhhmmsstt") + ".pdf";
J'espère que cela aide quelqu'un maintenant ou dans l'avenir. :)
Personnellement je l'aime de cette façon:
DateTime.Now.ToString("yyyy-MM-dd HH.mm.ss")
Parce qu'il fait la distinction entre la date et l'heure.
Vous pouvez essayer avec
var result = DateTime.Now.ToString("yyyy-MM-d--HH-mm-ss");
Vous pouvez créer un chemin pour votre fichier en tant que ci-dessous:
string path = "fileName-"+DateTime.Now.ToString("yyyy-dd-M--HH-mm-ss") + ".txt";
Utilisation de interpolation chaîne et spécificateur de format :
var filename = $"{DateTime.Now:yyyy.dd.M HH-mm-ss}"
Ou si vous n'êtes pas en Amérique:
var filename = $"{DateTime.Now:yyyy.M.dd HH-mm-ss}"
This feature is available in C# 6 and later versions of the language.