-2

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

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

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

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

4

1 回答 1

2

好吧,除非你有一台时间机器或者DateTime真的有问题,否则这不是你发布的代码的输出,它使用DateTime.Now.

我怀疑您的代码确实在使用DateTime.MinValue(或new DateTime()),而您看到凌晨 3 点的原因是(根据文档):

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

所以我怀疑你所在的时区是当地时间 0001 年 1 月 1 日午夜是 UTC 时间凌晨 3 点。(DateTimeZone.MinValue有一种“种类” Unspecified,因此当被要求转换为 UTC 时将被视为本地。在这个区域DateTime有点混乱。)

于 2012-07-06T21:26:05.130 回答