Domanda

Come posso ottenere quanto segue con una stringa di formato: 01.01.2009? Deve funzionare in tutte le lingue (l'esempio sarebbe per la Germania). Quindi dovrebbe esserci solo il breve giorno feriale e poi la breve data.

Ho provato 'ddd d' (senza il '). Tuttavia, questo porta a "Do 01". C'è forse un personaggio che posso mettere davanti alla 'd' in modo che sia da solo o qualcosa del genere?

È stato utile?

Soluzione

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

Altri suggerimenti

Dovresti utilizzare lo ISO 8601 se stai prendendo di mira un pubblico con varie lingue parlate .

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

In alternativa, puoi scegliere come target la cultura corrente con una breve data:

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

o una data lunga:

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

Per ottenere la breve data specifica della locale, così come il nome del giorno della locale, dovrai usare due chiamate, quindi:

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

Hai preso in considerazione la possibilità di utilizzare il formato per la data estesa?

Se vuoi localizzare (suppongo, dato che hai detto "tutte le lingue"), puoi usare CultureInfo per impostare le diverse culture che vuoi visualizzare. La libreria MSDN contiene informazioni su Stringhe di formato di data e ora standard e < a href = "http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.aspx" rel = "nofollow noreferrer"> Classe CultureInfo .

L'esempio MSDN fornisce:

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

Solo per riferimento, in Java va così:

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

Se vuoi assicurarti che gli stessi caratteri vengano usati come separatori, devi usare una barra rovesciata per sfuggire al carattere, altrimenti sarà il default alla localizzazione in cui ti trovi. Ti consiglio di usare questa stringa se vuoi il formato che hai specificato nella tua domanda

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

Per utilizzare invece le barre in avanti, è necessario evitarle in modo che vengano sempre visualizzate come barre.

DateTime.Now.ToString("ddd dd\\/MM\\/yyyy");
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top