web-dev-qa-db-fra.com

DateTime.Today.ToString ("jj / mm / aaaa") renvoie une valeur DateTime non valide

J'essaie d'obtenir la date d'aujourd'hui au format GBR mais,

DateTime.Now.ToString("dd/mm/yyyy");

renvoie avec la valeur de 08/00/2013

Alors 00 dans le groupe de mois a été renvoyé au lieu de renvoyer le mois 04.

Des idées pourquoi cela s'est produit?

22
Xerxes

mm inférieur signifie minutes, donc

DateTime.Now.ToString("dd/MM/yyyy");  

ou

DateTime.Now.ToString("d");  

ou

DateTime.Now.ToShortDateString()

fonctionne .

Chaînes de format de date et d'heure standard

43
Tim Schmelter

utilisez MM (mois) au lieu de mm (minutes):

DateTime.Now.ToString("dd/MM/yyyy");

vérifiez ici pour plus d'options de format.

10
Arshad

Il devrait être MM pendant des mois. Vous demandez des minutes.

DateTime.Now.ToString("dd/MM/yyyy");

Voir Chaînes de format de date et d'heure personnalisées sur MSDN pour plus de détails.

4
Oded

Utilisez MM pendant des mois. mm est pour les minutes.

DateTime.Now.ToString("dd/MM/yyyy");

Vous exécutez probablement ce code au début d'une heure comme (00:00, 05.00, 18.00) et mm donne les minutes (00) à votre date/heure.

De Custom Date and Time Format Strings

"mm" -> La minute, de 00 à 59.

"MM" -> Le mois, de 01 à 12.

Voici un DEMO . (Dont la partie mois de la première ligne dépend de l'heure à laquelle vous exécutez ce code ;))

3
Soner Gönül

En plus de ce que les autres réponses ont dit, notez que le caractère '/' dans "jj/MM/aaaa" n'est pas un caractère littéral: il représente le séparateur de date de la culture de l'utilisateur actuel. Par conséquent, si la culture actuelle utilise des dates aaaa-MM-jj, alors lorsque vous appelez toString, elle vous donnera une date telle que "31-12-2016" (en utilisant des tirets au lieu de barres obliques). Pour le forcer à utiliser des barres obliques, vous devez échapper à ce personnage:

DateTime.Now.ToString("dd/MM/yyyy")     --> "19-12-2016" for a Japanese user
DateTime.Now.ToString("dd/MM/yyyy")     --> "19/12/2016" for a UK user
DateTime.Now.ToString("dd\\/MM\\/yyyy") --> "19/12/2016" independent of region
2
Klitos Kyriacou