【发布时间】:2011-03-14 20:19:30
【问题描述】:
如果我像这样运行 sn-p:
bool areTheyTheSame = DateTime.UtcNow == DateTime.Now
我会得到什么?返回的 DateTime 是否知道它的时区以便我可以比较?
我的具体问题是我正在尝试构建一个类似缓存的 API。如果需要 DateTime AbsoluteExpiration,我是否必须强制我的 API 用户知道是给我一个 UTC 时间还是一个基于时区的时间?
[编辑] 这个 SO 问题也与我的问题极为相关:Cache.Add absolute expiration - UTC based or not?
[编辑] 只是为了向未来的读者澄清,DateTimeKind 是不同的。未定义的 DateTimeKind 通常是一个问题,例如,当您从数据库中拉出一个时,就会出现这种情况。在 DateTime 构造函数中设置 DateTimeKind...
[编辑] JonSkeet 写了一篇可爱的博文谴责这种行为并提供解决方案:http://noda-time.blogspot.co.uk/2011/08/what-wrong-with-datetime-anyway.html
【问题讨论】: