C#方法TimeZoneInfo.ConvertTime是否处理DST?

时间:2012-03-30 22:08:03

标签: c# datetime dst datetimeoffset

我有以下用户可以选择的时区列表,山地标准时间在亚利桑那州有两次。这些都不希望他们在选择时看到。我删除了一个包含所有微软时区的网站列表。如果它为常规州和AZ列出了山地标准时间,我想我很困惑。

夏威夷标准时间

阿拉斯加标准时间

太平洋标准时间

山地标准时间

山地标准时间

中央标准时间

中美洲标准时间

东部标准时间

U.S。东部标准时间

我的问题是我猜这些不考虑DST,所以我假设我需要在转换中添加一些东西来检查并查看它们是否在DST中并相应地进行调整。我现在正在进行转换。

TimeZoneInfo time = TimeZoneInfo.FindSystemTimeZoneById(LocationProvider.GetLocation(LocationID).TimeZone.Name);
return TimeZoneInfo.ConvertTime(DateTime.Now, time);

1 个答案:

答案 0 :(得分:2)

是的,TimeZoneInfo说明了DST,只要你正确使用它(不可否认,这并不容易)。现在还不清楚你为什么要做你正在做的事情......

我知道这个ID实际上是时区的标准 ID令人困惑,但它仍然是一个了解DST的全时区。它不只是意味着“标准时间”。

(如果您对DateTime et感到沮丧,并且想要Noda Time来满足您的所有日期/时间需求,我很乐意帮忙:)