关于时区的问题

时间:2011-04-02 09:37:16

标签: c# datetime timezone

我正在使用TimeZoneInfo类,如果有一些奇怪的东西,以下是我的场景

以UTC格式存储的时间:{3/29/2011 11:30:00 AM}

现在,当我开始使用以下两种方法将其转换为用户的相应时区时:

TimeZoneInfo.ConvertTimeFromUtc(date,TimeZoneInfo.ConvertTimeToUtc,{(UTC-05:00) Eastern Time (US & Canada)}
Output: {3/29/2011 6:30:00 AM}

第二种方式:

  int  offset=
    Convert.ToInt32(,{(UTC-05:00) Eastern Time (US & Canada)}
).BaseUtcOffset.TotalMinutes);

dateTime.AddMinutes(offset);

Output:+    {3/29/2011 7:30:00 AM}

现在你看到这两次之间存在差异,我想知道为什么不同之处会产生差异吗?

1 个答案:

答案 0 :(得分:4)

ConvertTimeFromUtc会考虑转换时夏令时的任何调整规则,而BaseUtcOffset会返回时区的基本偏移(没有任何调整规则)。如果您希望特定时间的UTC偏移(包括任何有效的调整规则),请使用GetUtcOffset