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?
mm
inférieur signifie minutes, donc
DateTime.Now.ToString("dd/MM/yyyy");
ou
DateTime.Now.ToString("d");
ou
DateTime.Now.ToShortDateString()
utilisez MM
(mois) au lieu de mm
(minutes):
DateTime.Now.ToString("dd/MM/yyyy");
vérifiez ici pour plus d'options de format.
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.
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 ;)
)
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