【发布时间】:2019-12-12 14:10:22
【问题描述】:
我有一个 UTC 日期时间,我需要将其转换为 EST 时区。应该就这么简单
var easternZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
var dt = DateTime.SpecifyKind(value, DateTimeKind.Utc);
return TimeZoneInfo.ConvertTimeFromUtc(dt, easternZone);
所以我输入的日期是
02-08-2019 22:53:32
结果值为
02-08-2019 18:53:32
它会从给定时间减去 4 小时。
但是如果我检查东部标准时区和 UTC 时区之间的偏移量,那么它返回的值是
easternZone.BaseUtcOffset {-05:00:00} System.TimeSpan
如果这是真的,那么上面的结果值应该是
02-08-2019 17:53:32
我不确定我在这里缺少什么。
【问题讨论】:
-
您是否检查过您收到的
TimeZoneInfo是否在夏令时? -
我对你的问题有点困惑,我尽力回答:你的代码实际上没有问题,the difference between UTC and EST is actually 4 hours. 但是,如果你需要时差为 5 小时,那么使用中部标准时间 (CST)