Sto solo chiedendo perché questo codiceformato stringa restituisce il risultato inaspettato
DateTime.Now.ToString("MM/dd/yyyy"); and String.Format("{0: MM/dd/yyyy}", DateTime.Now);
sia ritorna 03 31 2016 al posto del 2016/03/31.
Sto solo chiedendo perché questo codiceformato stringa restituisce il risultato inaspettato
DateTime.Now.ToString("MM/dd/yyyy"); and String.Format("{0: MM/dd/yyyy}", DateTime.Now);
sia ritorna 03 31 2016 al posto del 2016/03/31.
/
è un format specifier che viene trasformato nel separatore di data localizzato. O avvolgerlo in apostrofi o utilizzare il sovraccarico con DateTimeFormatInfo.InvariantInfo
.
Console.WriteLine(DateTime.Now.ToString("MM'/'dd'/'yyyy"));
Console.WriteLine(DateTime.Now.ToString("MM/dd/yyyy", DateTimeFormatInfo.InvariantInfo));
o con String.Format
:
Console.WriteLine(String.Format("{0:MM'/'dd'/'yyyy}", DateTime.Now));
Console.WriteLine(String.Format(DateTimeFormatInfo.InvariantInfo, "{0:MM/dd/yyyy}", DateTime.Now));
È anche possibile utilizzare al posto di CultureInfo.InvariantCulture
DateTimeFormatInfo.InvariantInfo
.
La risposta di Tim è eccezionale. Si potrebbe anche usare C# v6 stringa di interpolazione:
var x = DateTime.Now.ToString($"MM/dd/yyyy");
var y = $"{DateTime.Now: MM/dd/yyyy}";
Quali sono le impostazioni CultureInfo per _CultureInfo.CurrentCulture.DateTimeFormat.DateSeparator_ – Steve