将 UTC 时间融合到特定时区时出现问题
本文关键字:问题 定时区 UTC 时间 融合 | 更新日期: 2023-09-27 18:31:57
我有一个时间跨度值 1:00:00
我将其转换为UTC日期时间
DateTime dateTime = DateTime.UtcNow.Date.Add(timeSpan);
然后将此 UTC 日期时间隐藏到 (UTC-05:00) 东部时间(美国和加拿大)
TimeZoneInfo.ConvertTimeFromUtc(dateTime, timeZoneInfo);
但它返回我的日期时间,小时数为"21",我预计它应该是"20"
因为东部时间(美国和加拿大)的 (UTC-05:00) 应该是 1:00:00 AM - 5 = 20:00:00
知道我在这里做错了什么吗?
由于该时区目前采用夏令时 (DateTime.UtcNow),因此与一小时不同。
如果您只关心服务器时间
int dstOffset = 0;
if (System.TimeZone.CurrentTimeZone.IsDaylightSavingTime(DateTime.UtcNow))
dstOffset = -1;