对不起,如果这似乎是一个愚蠢的问题,但我无法在任何地方找到答案,我有点新手。 DateTime显示为我猜测的最小日期。例如:
DateTime updatedDate = new DateTime();
outItem.AddDate = updatedDate.ToLongDateString();
输出到0001年1月1日。我尝试了很多变化,结果相似。我究竟做错了什么?
答案 0 :(得分:10)
这取决于你所说的“错误”。 new DateTime()
确实与DateTime.MinValue
具有相同的价值。如果您想要当前时间,您应该使用:
DateTime updatedDate = DateTime.Now;
或
DateTime updatedDate = DateTime.UtcNow;
(第一个为您提供本地时间,第二个为您提供通用时间。DateTime
为somewhat 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时间。
您可以参考以下链接。