2009-01-01 6 views
2

Comment puis-je obtenir ce qui suit avec une chaîne de format: Est-ce que le 01.01.2009? Il doit fonctionner dans toutes les langues (l'exemple serait pour l'Allemagne). Il ne devrait donc y avoir que le jour de la semaine court et ensuite la date courte.Comment formater une date sans utiliser de code - Format Chaîne Question

J'ai essayé 'ddd d' (sans le '). Cependant, cela mène à 'Do 01'. Y a-t-il peut-être un personnage que je puisse mettre avant le 'd' pour que ce soit seul ou quelque chose comme ça?

Répondre

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

Vous devriez utiliser la norme ISO 8601 si vous ciblez des publics avec des langues parlées varié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 longue date:

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

Si vous ne pouvez utiliser qu'un format, la norme ISO 8601 est bonne. Mieux, cependant, est d'adapter le format à la notation préférée du client. –

0

Pour la locale courte date précise, ainsi que le nom du jour locale, alors vous allez devoir utiliser deux appels, donc:

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

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

0

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 Standard Date and Time Format Strings et CultureInfo Class.

L'exemple MSDN fournit:

// 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 
0

Juste pour référence, en Java, il va comme ceci:

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

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 échapper au caractère, sinon il sera par défaut à l'environnement local où vous êtes. Je recommande d'utiliser cette chaîne si vous voulez le format que vous avez spécifié dans votre question

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

Pour utiliser des barres obliques à la place, vous devez les échapper afin qu'elles soient toujours affichées en tant que barres obliques.

DateTime.Now.ToString("ddd dd\\/MM\\/yyyy"); 
Questions connexes