0

我有一个时间跨度值 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

知道我在这里做错了什么吗?

4

2 回答 2

0

如果您只关心服务器时间

int dstOffset = 0;

if (System.TimeZone.CurrentTimeZone.IsDaylightSavingTime(DateTime.UtcNow))
   dstOffset = -1;
于 2012-04-20T15:25:56.643 回答
0

由于该时区是夏令时,目前(DateTime.UtcNow),它是一个小时的不同。

于 2012-04-20T15:21:09.183 回答