Question

Comment puis-je obtenir les éléments suivants avec une chaîne de formatage: Do 01.01.2009? Il doit fonctionner dans toutes les langues (l'exemple serait pour l'Allemagne). Il ne devrait donc y avoir que le court jour de la semaine puis la courte date.

J'ai essayé 'ddd d' (sans le '). Cependant, cela conduit à 'Do 01'. Y a-t-il un personnage que je peux mettre avant le «d» pour qu'il marche seul ou quelque chose comme ça?

Était-ce utile?

La solution

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

Autres conseils

Vous devriez utiliser la norme ISO 8601 si vous ciblez des publics ayant diverses langues parlées. .

DateTime.Now.ToString("ddd yyyy-MM-dd");

Vous pouvez également cibler la culture actuelle avec une date courte:

DateTime.Now.ToString("d", Thread.CurrentThread.CurrentCulture);

ou une longue date:

DateTime.Now.ToString("D", Thread.CurrentThread.CurrentCulture);

Pour obtenir la date courte spécifique à l'environnement local, ainsi que le nom de jour de l'environnement local, vous devrez utiliser deux appels, donc:

 myDate.ToString("ddd ") + myDate.ToString("d");

Avez-vous envisagé d'utiliser le format de date longue à la place?

Si vous souhaitez localiser (je suppose, puisque vous avez dit "toutes les langues"), vous pouvez utiliser CultureInfo pour définir les différentes cultures que vous souhaitez afficher. La bibliothèque MSDN contient des informations sur les chaînes de format de date et heure standard et < a href = "http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.aspx" rel = "nofollow noreferrer"> Classe CultureInfo .

L'exemple fourni par MSDN:

// Display using pt-BR culture's short date format
DateTime thisDate = new DateTime(2008, 3, 15);
CultureInfo culture = new CultureInfo("pt-BR");      
Console.WriteLine(thisDate.ToString("d", culture));  // Displays 15/3/2008

Juste pour référence, en Java cela ressemble à ceci:

DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
Date date = new Date();
String formattedDate = dateFormat.format(date);

Si vous voulez vous assurer que les mêmes caractères sont utilisés comme séparateurs, vous devez utiliser une barre oblique inverse pour le masquer. Sinon, les paramètres régionaux par défaut seront respectés. Je vous recommande d'utiliser cette chaîne si vous souhaitez utiliser le format spécifié. dans votre question

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

Pour utiliser plutôt les barres obliques, vous devez les échapper pour les afficher toujours sous forme de barres obliques.

DateTime.Now.ToString("ddd dd\\/MM\\/yyyy");
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top