C# 2017年巴西DST启动不正确

C# 2017年巴西DST启动不正确,c#,c++,dst,C#,C++,Dst,2017年,DST于10月15日00:00:00(午夜)在巴西开始- 当我在Windows中切换到巴西时区并将日期更改为2017年10月15日之前的几天时,我看到系统正确显示DST开始日期(显示的信息显示DST将在10月15日开始) 问题是,当我试图从代码中获取DST开始日期时,它返回10月22日。我尝试了使用C++ +MKTime+C时限。 以下是c#代码: 结果是: 10/21/2017 11:59:59 PM 知道原因吗?时区类只支持一次调整,可能会出错,请参阅 它向呼叫者推荐注意事项

2017年,DST于10月15日00:00:00(午夜)在巴西开始-

当我在Windows中切换到巴西时区并将日期更改为2017年10月15日之前的几天时,我看到系统正确显示DST开始日期(显示的信息显示DST将在10月15日开始)

问题是,当我试图从代码中获取DST开始日期时,它返回10月22日。我尝试了使用C++ +MKTime+C时限。 以下是c#代码:

结果是:

10/21/2017 11:59:59 PM

知道原因吗?

时区类只支持一次调整,可能会出错,请参阅

它向呼叫者推荐注意事项

使用TimeZoneInfo.GetAdjustmentRules方法返回的TimeZoneInfo.AdjustmentRule对象数组可以获得更精确的结果。开始、结束和增量属性对应于TimeZoneInfo.AdjustmentRule.DateStart、TimeZoneInfo.AdjustmentRule.DateEnd和TimeZoneInfo.AdjustmentRule.DaylightDelta属性


时区
可能不适合使用。请参阅
GetDaylightChanges
中的调用者注意事项:由于时区类仅支持一个夏令时调整规则,因此GetDaylightChanges方法将当前调整规则应用于任何年份,而不管调整规则是否实际应用于该年份。使用
TimeZoneInfo
时会发生什么情况?TimeZoneInfo工作正常。谢谢,谢谢,我没注意到这句话。仍然奇怪的是,GetDaylightChanges并没有考虑来自系统的动态DST设置(只有在我们确信它不会在具有动态DST更改的系统中使用的情况下,我们才能信任它)。我认为mktime的工作原理是一样的。
10/21/2017 11:59:59 PM