.NET DateTime是否使用ToString(“U”)?

时间:2012-07-06 21:20:33

标签: .net datetime

我有下一个简单的代码......

Console.WriteLine(default(DateTime).Date.ToString("U"));

发出的文本是(我有西班牙语安装): “lunes,01 de enero de 0001 3:00:00”

为什么它从3小时开始,而不是0?这是一个错误?

1 个答案:

答案 0 :(得分:1)

除非您有时间机器或DateTime 确实错误,否则这不是您发布的代码的输出,它使用DateTime.Now

我怀疑你的代码是真的使用DateTime.MinValue(或new DateTime()),而你看到凌晨3点的原因是(per the documentation) :

  

图案与“F”图案相同。但是,DateTime值在格式化之前会自动转换为UTC。

所以我怀疑你所在的时区是1月1日午夜,当地时间是凌晨3点。 (DateTimeZone.MinValue的“种类”为Unspecified,因此在被要求转换为UTC时会被视为本地。DateTime在此区域周围是bit of a mess。)