C# 字符串格式返回意外结果
我只是想知道为什么会有这种代码C# 字符串格式返回意外结果,c#,visual-studio-2015,C#,Visual Studio 2015,我只是想知道为什么会有这种代码 DateTime.Now.ToString("MM/dd/yyyy"); and String.Format("{0: MM/dd/yyyy}", DateTime.Now); 两者都返回2016年3月31日,而不是2016年3月31日 /是一个转换为本地化日期分隔符的。要么用撇号将其包装,要么使用重载和DateTimeFormatInfo.InvariantInfo Console.WriteLine( DateTime.Now.ToString("MM'/'
DateTime.Now.ToString("MM/dd/yyyy"); and String.Format("{0: MM/dd/yyyy}", DateTime.Now);
两者都返回2016年3月31日,而不是2016年3月31日 /
是一个转换为本地化日期分隔符的。要么用撇号将其包装,要么使用重载和DateTimeFormatInfo.InvariantInfo
Console.WriteLine( DateTime.Now.ToString("MM'/'dd'/'yyyy") );
Console.WriteLine( DateTime.Now.ToString("MM/dd/yyyy", DateTimeFormatInfo.InvariantInfo) );
或使用String.Format
:
Console.WriteLine( String.Format("{0:MM'/'dd'/'yyyy}", DateTime.Now) );
Console.WriteLine( String.Format(DateTimeFormatInfo.InvariantInfo, "{0:MM/dd/yyyy}", DateTime.Now) );
您还可以使用
CultureInfo.InvariantCulture
而不是DateTimeFormatInfo.InvariantInfo
蒂姆的答案太棒了。您还可以使用c#v6字符串插值:
var x = DateTime.Now.ToString($"MM/dd/yyyy");
var y = $"{DateTime.Now: MM/dd/yyyy}";
CultureInfo.CurrentCulture.DateTimeFormat.DateSeparator的CultureInfo设置是什么