我在理解如何DateTime
正确转换为不同的时区时遇到问题。
可以说,我想将DateTime
时间转换为:东部标准时间 10:00(军事)到DateTime
UTC。
这是我尝试的:
DateTime unspecified = new DateTime(2013, 8, 15, 10, 0, 0, DateTimeKind.Unspecified);
var utc = TimeZoneInfo.ConvertTime(unspecified, TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time"), TimeZoneInfo.Utc);
...我DateTime
用构建DateTimeKind.Unspecified
,因为它既不是 UTC,也不是本地时间(它是 10:00 EST)。然后我将它传递给TimeZoneInfo.ConvertTime,告诉它这是DateTime
在 EST 中,我想将它转换为 UTC。
由于EST比协调世界时 (UTC) 晚5 小时,我希望utc
等于{15.08.2013 15:00:00}
,但是当我在上面运行代码时,出于某种原因,得到{15.08.2013 14:00:00}
(即时差为4 小时)。
问题是:为什么?这是某种日间节省时间问题吗?如果是这样 - 如何在没有日间节省时间概念的情况下获得这种转换?