我反对将日期时间存储为UTC的问题,并且混淆了为什么在更改时区时不会产生相同的结果:
var dt = DateTime.Parse("1/1/2013");
MessageBox.Show(TimeZoneInfo.ConvertTimeToUtc(dt, TimeZoneInfo.Local).ToString());
Run Code Online (Sandbox Code Playgroud)
我在东部和中部之间的机器上手动切换我的本地时区.
中央收益率1/1/2013 6:00:00 AM
和东部收益率1/1/2013 5:00:00 AM
.我在这里错过了什么?无论时区如何,它们应该是一样的,对吗?
非常感谢提前!
Cha*_*ian 16
我认为你缺少的是DateTime
你的DateTime.Parse()
陈述所返回的并没有时区.这只是一个可以在任何时区的日期和时间.当你打电话时TimeZoneInfo.ConvertTimeToUtc(dt, TimeZoneInfo.Local)
,你告诉它它开始的时区.所以如果你从中心开始,你会得到一个答案,而如果你从东部开始,你会得到一个小时前的答案,UTC.实际上,这就是您的代码所显示的内容.
归档时间: |
|
查看次数: |
23695 次 |
最近记录: |