Comment puis-je formater une date comme dd/mm/yyyy
ou mm/dd/yy
?format date dans C#
Comme dans VB format("dd/mm/yy",now)
Comment puis-je faire cela en C#?
Comment puis-je formater une date comme dd/mm/yyyy
ou mm/dd/yy
?format date dans C#
Comme dans VB format("dd/mm/yy",now)
Comment puis-je faire cela en C#?
Il est presque la même chose, il suffit d'utiliser la méthode DateTime.ToString()
, par exemple:
DateTime.Now.ToString("dd/MM/yy");
Ou:
DateTime dt = GetDate(); // GetDate() returns some date
dt.ToString("dd/MM/yy");
En outre, vous voudrez peut-être envisager d'utiliser l'un des formats de date/heure prédéfinis , par exemple:
DateTime.Now.ToString("g");
// returns "02/01/2009 9:07 PM" for en-US
// or "01.02.2009 21:07" for de-CH
Ceux-ci assurent que le format sera correct, indépendamment du paramètres régionaux actuels.
Vérifiez les pages suivantes MSDN pour plus d'informations
Quelques informations complémentaires connexes:
Si vous souhaitez afficher une date dans un lieu/culture spécifique, alors il y a une surcharge de la méthode ToString()
qui prend un IFormatProvider
:
DateTime dt = GetDate();
dt.ToString("g", new CultureInfo("en-US")); // returns "5/26/2009 10:39 PM"
dt.ToString("g", new CultureInfo("de-CH")); // returns "26.05.2009 22:39"
Ou bien, vous pouvez régler le CultureInfo
du thread courant avant au formatage d'une date:
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
dt.ToString("g"); // returns "5/26/2009 10:39 PM"
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-CH");
dt.ToString("g"); // returns "26.05.2009 22:39"
string.Format("{0:dd/MM/yyyy}", DateTime.Now)
Cherchez "les chaînes de format" sur MSDN pour voir toutes les options de formatage.
Utilisez yy
, yyyy
, M
, MM
, MMM
, MMMM
, d
, dd
, ddd
, dddd
pour la composante date
utilisation h
, hh
, H
, HH
, m
, mm
, s
, ss
pour la composante temps de jour
Voici le lien MSDN. Cela pourrait aider les autres. https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx – Sai
Essayez ceci:
String.Format("{0:MM/dd/yyyy}", DateTime.Now); // 01/31/2009
String.Format("{0:dd/MM/yyyy}", DateTime.Now); // 31/01/2009
String.Format("{dd/MM/yyyy}", DateTime.Now); // 31/01/2009
En vous pouvez également écrire
DateTime aDate = new DateTime();
string s = aDate.ToShortDateString();
pour une courte notation
ou
DateTime aDate = new DateTime();
string s = aDate.ToLongDateString();
pour une notation à long comme "dimanche, 1 Fevrier 2009".
Ou jeter un oeil à MSDN pour les possibities de .ToString ("???");
Mieux encore, utilisez simplement
DateTime.Now.ToString()
ou
DateTime.Now.ToString(CultureInfo.CurrentCulture)
à utiliser le format que l'utilisateur préfère.
J'ai rencontré le même problème. Ce que je devais faire était d'ajouter une référence en haut de la classe et de changer le CultureInfo du thread qui est en cours d'exécution.
using System.Threading;
string cultureName = "fr-CA";
Thread.CurrentThread.CurrentCulture = new CultureInfo(cultureName);
DateTime theDate = new DateTime(2015, 11, 06);
theDate.ToString("g");
Console.WriteLine(theDate);
Tout ce que vous avez à faire est de changer le nom de la culture, par exemple: "en-US" = Etats-Unis "fr-FR" = langue française France "fr-CA" = français Canada parlant etc ...
Je pense que c'est simple que vous pouvez convertir en tout format et sans aucune confusion
DateTime.ParseExact(txt.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture).ToString("yyyy/MM/dd"));
devrait être des lettres majuscules mM pour le mois, mm signifie minutes ... –
I encourager vous suivez les conseils de Martin et suivez les codes prédéfinis, qui sont sensibles à la culture. Vous n'en aurez peut-être pas besoin maintenant, mais dans l'avenir, cela pourrait faciliter les choses. –
+1 pour les formats prédéfinis –