Dyl*_*nck 4 c# timezone datetime parsing
当我需要将字符串解析为日期时间时,我遇到了问题.有时它会增加一个小时,有时却不增加.它有什么理由,因为我不想添加一个小时.
第一个例子完全符合我的需要.
string s = "2016-01-28T20:59:00.000+01:00";
DateTime ds = DateTime.Parse(s); //gives: 28/01/2016 20:59:00
Run Code Online (Sandbox Code Playgroud)
第二个例子增加了一个小时,我想知道为什么.
string ss = "2016-05-27T10:38:00.000+01:00";
DateTime dss = DateTime.Parse(ss); //gives: 27/05/2016 11:38:00
Run Code Online (Sandbox Code Playgroud)
我强烈怀疑这是因为您当前时区的夏令时.
看起来你的时区UTC +01:00在一月份,但它UTC +02:00在五月.这就是为什么你的第二个例子增加了一个多小时,因为它已经01:00在里面小时的抵消一部分.
但不是 - DateTime因为你的字符串有UTC偏移 - 我会解析它DateTimeOffset.
DateTimeOffset ds = DateTimeOffset.Parse(s);
Run Code Online (Sandbox Code Playgroud)
现在你拥有{28.01.2016 20:59:00 +01:00}并{27.05.2016 10:38:00 +01:00}作为DateTimeOffset保存在他们.DateTime和.Offset属性中的值.
| 归档时间: |
|
| 查看次数: |
1586 次 |
| 最近记录: |