为什么当地时间提前一小时

时间:2015-08-05 17:20:02

标签: c# .net datetime timezone

我有这个字符串:str1 =“2008-06-01T12:59:59-06:00”,当我使用DateTime.Parse(str1)时,它给了我DateTime实例,它具有相同的年,月和日但小时变为13,分钟为59,秒为59,其中Kind为Local,就像下面的屏幕截图一样。

enter image description here

我想知道为什么小时是13,这是因为正在运行的计算机的时区是美国中部时区,而6月1日是在白天节能期间。但是当我使用字符串“2008-06-01T12:59:59-05:00”时,生成的DateTime实例的小时为12。

我认为-05:00时区实际上对应于3个区域:(1)Bogoto,Lima(2)Estern Time(美国和加拿大)(3)印第安纳州。如果解析考虑了“Day Light Saving”,它将使用哪个区域,region(1)可能没有“Day Light Saving”和(2),最终它将产生什么样的实例?

1 个答案:

答案 0 :(得分:1)

实际上,“2008-06-01T12:59:59-06:00”总是被解释为'2008-06-01T18:59:59Z'UTC时间,而不是取决于正在运行的机器的TimeZoneInfo.Local, Date.Parse(str1)将该UTC时间转换为中央夏令时或其他时区的时间