155 votes

DateTime.ToString() format qui peut être utilisé dans un nom de fichier ou une extension ?

Je veux ajouter un horodatage aux noms de fichiers lors de leur création, 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 exactement lisible par l'homme. Comment puis-je formater la sortie en un horodatage lisible par l'homme avec la date et l'heure qui peut être utilisé dans un nom de fichier ou une extension ? De préférence, quelque chose comme 2011-19-9--13-45-30 ?

213voto

Kristof Claes Points 5867

Vous pouvez utiliser ceci :

DateTime.Now.ToString("yyyy-dd-M--HH-mm-ss");

183voto

Christoffer Lette Points 4739

J'utiliserais le ISO 8601 sans séparateurs :

DateTime.Now.ToString("yyyyMMddTHHmmss")

30voto

Gabe Haack Points 256

J'ai une situation similaire, mais je veux un moyen cohérent de pouvoir utiliser DateTime.Parse à partir du nom de fichier également.

DateTime.Now.ToString("s").Replace(":", ".") // <-- 2016-10-25T16.50.35

Lorsque je veux analyser, je peux simplement inverser l'appel Replace. De cette façon, je n'ai pas besoin de taper un quelconque yymmdd ou de deviner quels formats DateTime.Parse autorise.

15voto

Charles Clayton Points 7465

Personnellement, j'aime bien cette façon de faire :

DateTime.Now.ToString("yyyy-MM-dd HH.mm.ss")

Parce qu'il fait la distinction entre la date et l'heure.

11voto

RJK Points 1661

La liste ci-dessous énumère les spécificateurs de format de temps les plus couramment utilisés..,

dd -- jour du mois, de 01 à 31.

MM -- mois de 01 à 12.

yyyy -- année comme un nombre à quatre chiffres.

hh -- heure en utilisant un 12 heures l'horloge de 01 à 12.

mm -- minute de 00 à 59.

ss -- deuxième de 00 à 59.

HH -- heure en utilisant un 24 heures l'horloge de 00 à 23.

tt -- AM/PM désignateur.

En utilisant ce qui précède, vous serez en mesure de former 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 les symboles, vous pouvez également essayer ceci..,

string fileName = "fileName_" + DateTime.Now.ToString("MMddyyyyhhmmsstt") + ".pdf";

J'espère que cela aidera quelqu'un maintenant ou à l'avenir :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X