DateTime将日期显示为01/01/0001

时间:2011-11-18 23:45:05

标签: c# datetime

对不起,如果这似乎是一个愚蠢的问题,但我无法在任何地方找到答案,我有点新手。 DateTime显示为我猜测的最小日期。例如:

DateTime updatedDate = new DateTime();
outItem.AddDate = updatedDate.ToLongDateString();

输出到0001年1月1日。我尝试了很多变化,结果相似。我究竟做错了什么?

3 个答案:

答案 0 :(得分:10)

这取决于你所说的“错误”。 new DateTime()确实与DateTime.MinValue具有相同的价值。如果您想要当前时间,您应该使用:

DateTime updatedDate = DateTime.Now;

DateTime updatedDate = DateTime.UtcNow;

(第一个为您提供本地时间,第二个为您提供通用时间。DateTimesomewhat messed up当涉及到地方/普遍鸿沟。)

答案 1 :(得分:4)

如果您想获取当前日期,请使用DateTime.Now。您正在创建日期类的新实例,最小值是其默认值。

DateTime updatedDate = DateTime.Now;
outItem.AddDate = updatedDate.ToLongDateString();

编辑:实际上,您可以通过以下方式缩短代码:

outItem.AddDate = DateTime.Now.ToLongDateString();

答案 2 :(得分:2)

Jon Skeet说的正确,我还有一些要补充。

“错误”取决于你想要的时间。

DateTime 结构结构

的默认构造函数

始终将所有字段初始化为数字类型的零并且为空

用于参考类型。

因此,如果您想获取当前的本地日期和时间,可以调用静态属性DateTime.Now。

   var curDateTime = DateTime.Now;

如果你想获得UTC时间。

   var utcDateTime = DateTime.UtcNow;

注意:DateTime.UtcNow获取当前日期和时间,但不是使用本地时区,而是使用UTC时间。

您可以参考以下链接。

http://blackrabbitcoder.net/archive/2010/11/18/c.net-little-wonders-datetime-is-packed-with-goodies.aspx