W.澳大利亚标准时间.Net时区信息支持SDayLightSavingTime问题

W.澳大利亚标准时间.Net时区信息支持SDayLightSavingTime问题,.net,timezone,registrykey,.net,Timezone,Registrykey,W.Aus标准时间的.Net/Windows TimeZoneInfo对象显示它支持夏令时。在澳大利亚政府网站上搜索有关各地区遵守夏令时的信息显示,西澳大利亚州在2009年废除了夏令时,因此从2010年至今以及以后都没有夏令时 我在几个系统上检查了TimeZoneInfo对象,他们都说W Aus标准时间支持dst。它们的所有注册表都具有相同的值。我已检查Windows更新,找不到TimeZoneInfo对象的更新 有人能解释为什么微软7年多以来似乎忽视了更新这个对象吗?我错过了什么吗?我相信你看

W.Aus标准时间的.Net/Windows TimeZoneInfo对象显示它支持夏令时。在澳大利亚政府网站上搜索有关各地区遵守夏令时的信息显示,西澳大利亚州在2009年废除了夏令时,因此从2010年至今以及以后都没有夏令时

我在几个系统上检查了TimeZoneInfo对象,他们都说W Aus标准时间支持dst。它们的所有注册表都具有相同的值。我已检查Windows更新,找不到TimeZoneInfo对象的更新


有人能解释为什么微软7年多以来似乎忽视了更新这个对象吗?我错过了什么吗?

我相信你看到了:

TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById("W. Australia Standard Time");
tzi.SupportsDaylightSavingTime == true
根据
SupportsDaylightSavingTime
属性:

获取一个值,该值指示时区是否有任何夏令时规则

因此,它不会告诉您时区当前是否使用夏令时,它会告诉您是否使用过夏令时,至少在Windows时区数据中的短暂历史时间内

如果您想知道DST当前是否有效,请执行以下操作:

TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById("W. Australia Standard Time");
tzi.IsDaylightSavingTime(DateTime.UtcNow) // false
如果您想知道它在特定年份的任何时候是否受支持,可以检查从
GetAdjustmentRules
方法返回的调整规则数据

Windows将时区数据存储在注册表中的以下位置:

HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
\时区\西澳大利亚标准时间\动态DST

因此,我们可以看到登记处有2005年以后的数据。如果你仔细观察,你也可以看到2006年和2009年之间的一些变化。如果您感兴趣,可以帮助您解释数据

事实上,如果我们检查一下(时区信息的一个非常好的资源),我们可以看到西澳大利亚确实在2006年到2009年有夏令时:

最后,我要补充的是,Windows时区服务团队非常擅长掌握世界各地时区数据的变化。您可以监视更新。特别是,它们大大扩大了覆盖范围,提高了历史准确性


对于澳大利亚,2016年6月的更新增加了两个新时区;一个用于洛德豪岛(UTC+10:30 STD,UTC+11:00 DST),另一个用于欧克拉拉附近使用的非官方中西部时间(UTC+08:45),但任何标准的大陆时区都不需要更正。

我相信您看到了这一点:

TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById("W. Australia Standard Time");
tzi.SupportsDaylightSavingTime == true
根据
SupportsDaylightSavingTime
属性:

获取一个值,该值指示时区是否有任何夏令时规则

因此,它不会告诉您时区当前是否使用夏令时,它会告诉您是否使用过夏令时,至少在Windows时区数据中的短暂历史时间内

如果您想知道DST当前是否有效,请执行以下操作:

TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById("W. Australia Standard Time");
tzi.IsDaylightSavingTime(DateTime.UtcNow) // false
如果您想知道它在特定年份的任何时候是否受支持,可以检查从
GetAdjustmentRules
方法返回的调整规则数据

Windows将时区数据存储在注册表中的以下位置:

HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
\时区\西澳大利亚标准时间\动态DST

因此,我们可以看到登记处有2005年以后的数据。如果你仔细观察,你也可以看到2006年和2009年之间的一些变化。如果您感兴趣,可以帮助您解释数据

事实上,如果我们检查一下(时区信息的一个非常好的资源),我们可以看到西澳大利亚确实在2006年到2009年有夏令时:

最后,我要补充的是,Windows时区服务团队非常擅长掌握世界各地时区数据的变化。您可以监视更新。特别是,它们大大扩大了覆盖范围,提高了历史准确性


对于澳大利亚,2016年6月的更新增加了两个新时区;一个用于Lord Howe Island(UTC+10:30标准时间,UTC+11:00标准时间),另一个用于Eucla附近使用的非官方中西部时间(UTC+08:45),但任何标准大陆时区都不需要更正。

SiupportsDaylightSavingTime告诉您是否有时区的DST规则。是的,2010年之前的日期一定有。它并没有说DST目前生效。谢谢@Hans的回复。现在我更清楚了它是如何工作的。SiupportsDaylightSavingTime告诉您是否有时区的DST规则。是的,2010年之前的日期一定有。它并没有说DST目前生效。谢谢@Hans的回复。我现在更清楚这是怎么回事了。这很有道理,你准确地指出了我想知道的信息。我没有考虑过SupportsDaylightSavingsTime位将充当逻辑控件,将日期传递给TimeZoneInfo类中的检查规则方法。现在,一般来说,如何阅读这些对象变得更加清晰了。非常感谢。另外,感谢您提供有关Windows更新的信息和链接。我去过很多这样的资源。看到有你的资历的人确认他们的正确性可以减轻我们团队在确保我们正确发球时间方面的压力。我们正在使用您的一些库以及Windows对象。我们(和许多其他人)感谢你在这个领域的辛勤工作!很高兴我能帮忙!另外,你可能想寻找另一种方法。这很有道理,你准确地指出了我无法理解的信息。我没有考虑过SupportsDaylightSavingsTime位将充当逻辑控件,将日期传递给TimeZoneInfo类中的检查规则方法。现在,一般来说,如何阅读这些对象变得更加清晰了。非常感谢。另外,谢谢你提供的信息