我的时间跨度值为1:00:00
我把它转换为UTC日期时间
DateTime dateTime = DateTime.UtcNow.Date.Add(timeSpan);
然后将此UTC日期时间转换为(UTC-05:00)美国东部时间(美国和加拿大)
TimeZoneInfo.ConvertTimeFromUtc(dateTime, timeZoneInfo);
但它返回DateTime,小时为“21”,我希望它应该是“20”
因为(UTC-05:00)东部时间(美国和加拿大)应该是凌晨1:00:00 - 5 = 20:00:00
知道我在这里做错了吗?
答案 0 :(得分:0)
由于该时区目前处于夏令时,目前(DateTime.UtcNow),它是一个小时不同。
答案 1 :(得分:0)
如果您只关心服务器时间
int dstOffset = 0;
if (System.TimeZone.CurrentTimeZone.IsDaylightSavingTime(DateTime.UtcNow))
dstOffset = -1;