String Format返回意外结果

mar*_*rai 6 c# visual-studio-2015

我只是想知道为什么这个代码

DateTime.Now.ToString("MM/dd/yyyy"); and String.Format("{0: MM/dd/yyyy}", DateTime.Now);
Run Code Online (Sandbox Code Playgroud)

两者都返回03 31 2016而不是03/31/2016.

Tim*_*ter 8

/是一个格式说明符,它转换为您的本地化日期分隔符.将它包装在撇号中或使用重载DateTimeFormatInfo.InvariantInfo.

Console.WriteLine( DateTime.Now.ToString("MM'/'dd'/'yyyy") );  
Console.WriteLine( DateTime.Now.ToString("MM/dd/yyyy", DateTimeFormatInfo.InvariantInfo) );   
Run Code Online (Sandbox Code Playgroud)

或者String.Format:

Console.WriteLine( String.Format("{0:MM'/'dd'/'yyyy}", DateTime.Now) );
Console.WriteLine( String.Format(DateTimeFormatInfo.InvariantInfo, "{0:MM/dd/yyyy}", DateTime.Now) );
Run Code Online (Sandbox Code Playgroud)

您也可以使用CultureInfo.InvariantCulture而不是DateTimeFormatInfo.InvariantInfo.