给定以下 C# 代码:
var dt = DateTime.Now;
Console.WriteLine("{0:MM/dd/yy} ... {1}", dt, string.Format("{0:MM/dd/yy}", dt));
当短日期(在Windows 7下,可以进入“控制面板-区域和语言-附加设置-日期”)设置为美国的标准格式“M/d/yyyy”时,我会得到以下结果:
06/17/14 ... 06/17/14
然而,当我将短日期更改为"
ddd dd MMM yyyy
"时,会得到以下结果:06/17/14 ... 06 17 14
我曾以为
Console.WriteLine
和string.Format
总是以相同的方式格式化DateTime
值。这种差异的解释是什么?
编辑:看起来这只会发生在标准单元测试输出(Visual Studio)中,这也是我最初看到问题的地方。当代码在控制台应用程序中执行时,输出为06 17 14 ... 06 17 14
。
Console.WriteLine
和String.Format
时输出不同。 - Dirk06 17 14 ... 06 17 14
。 - LostInComputer06 17 14 ... 06 17 14
。我的原始项目输出是从一个单元测试中写入的(标准的,使用Microsoft.VisualStudio.TestTools.UnitTesting
),因此我创建了一个新的单元测试项目,结果从单元测试读取为06/17/14 ... 06 17 14
。请问有人可以尝试一下并让我知道你是否得到了不同的输出? - MiloDC