我有下一个简单的代码......
Console.WriteLine(default(DateTime).Date.ToString("U"));
发出的文本是(我有西班牙语安装): “lunes,01 de enero de 0001 3:00:00”
为什么它从3小时开始,而不是0?这是一个错误?
答案 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。)