2012-04-20 71 views
0

我有一个时间跨度值1:00:00问题与convering UTC时间particluar时区

我日期时间

转换这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

任何想法,我做错了什么?

回答

0

由于该时区位于夏令时,当前(DateTime.UtcNow),它与一小时不同。

0

如果你只关心服务器的时间

int dstOffset = 0; 

if (System.TimeZone.CurrentTimeZone.IsDaylightSavingTime(DateTime.UtcNow)) 
    dstOffset = -1;