cod*_*ple 6 c# timezone datetime
我有这行代码:
double seconds = new DateTime(2006,7,6,12,1,0,DateTimeKind.Local).Subtract(new DateTime(1970,1,1,0,0,0,DateTimeKind.Local).TotalSeconds;
Run Code Online (Sandbox Code Playgroud)
这不是我想要的正确号码,所以我尝试了以下方法:
double seconds = new DateTime(2006,7,6,12,1,0,DateTimeKind.Local).Subtract(new DateTime(1970,1,1,0,0,0,DateTimeKind.Utc).TotalSeconds;
Run Code Online (Sandbox Code Playgroud)
(不同之处在于,在一种情况下,我使用当地时间作为纪元,而在另一种情况下,我使用UTC).有趣的是,他们都给了我相同的价值,我不知道为什么会这样.我住在-600 GMT,所以DateTimeKind.Local实际上应该影响事情.
提前致谢!
在MSDN上的DateTimeKind页面(http://msdn.microsoft.com/en-us/library/shx7s921.aspx)中,它指出:
DateTimeKind枚举的成员用于本地时间和协调世界时(UTC)之间的转换操作,但不用于比较或算术运算.有关时间转换的更多信息,请参阅转换时区之间的时间.
那里的建议说要使用 TimeZoneInfo.ConvertTimeToUtc
因此,基于此,代码应该可以修改为:
double seconds = new DateTime(2006,7,6,12,1,0,DateTimeKind.Local).Subtract(TimeZoneInfo.ConvertTimeToUtc(new DateTime(1970,1,1,0,0,0,DateTimeKind.Local)).TotalSeconds
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2745 次 |
| 最近记录: |