Sco*_*ord 5 c# timezone datetime utc
如果我运行一个片段,如:
bool areTheyTheSame = DateTime.UtcNow == DateTime.Now
Run Code Online (Sandbox Code Playgroud)
我会得到什么?DateTime返回知道它的时区,以便我可以比较吗?
我的具体问题是我正在尝试构建类似缓存的API.如果需要DateTime AbsoluteExpiration,我是否必须强制我的API用户知道是给我一个UTC时间还是基于时区的时间?
[编辑]这个问题与我的问题非常相关:Cache.Add绝对到期 - 是否基于UTC?
[编辑]为了澄清未来的读者,DateTimeKind是不同的.未定义的DateTimeKind通常是一个问题,例如,当您从数据库中取出一个时,就会得到这个问题.在DateTime构造函数中设置DateTimeKind ...
[编辑] JonSkeet写了一篇可爱的博客文章,谴责这种行为并提供解决方案:http://noda-time.blogspot.co.uk/2011/08/what-wrong-with-datetime-anyway.html
你自己尝试过片段了吗?
它们是不同的,并且直接比较不能解释差异,但您可以通过调用将本地转换为UTC ToUniversalTime.
var now = DateTime.Now;
var utcNow = DateTime.UtcNow;
Console.WriteLine(now); // 12/07/2010 16:44:16
Console.WriteLine(utcNow); // 12/07/2010 15:44:16
Console.WriteLine(now.ToUniversalTime()); // 12/07/2010 15:44:16
Console.WriteLine(utcNow.ToUniversalTime()); // 12/07/2010 15:44:16
Console.WriteLine(now == utcNow); // False
Console.WriteLine(now.ToUniversalTime() == utcNow); // True
Console.WriteLine(utcNow.ToUniversalTime() == utcNow); // True
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1612 次 |
| 最近记录: |