如何确定给定日期是否为.NET 2.0中给定时区的夏令时?
我在.NET2.0上,在中等信任下运行(所以和注册表是不允许的选项)。我要求用户提供两个日期和一个时区,并希望能够自动确定是否需要调整DST的时区如何确定给定日期是否为.NET 2.0中给定时区的夏令时?,.net,.net-2.0,timezone,medium-trust,.net,.net 2.0,Timezone,Medium Trust,我在.NET2.0上,在中等信任下运行(所以和注册表是不允许的选项)。我要求用户提供两个日期和一个时区,并希望能够自动确定是否需要调整DST的时区 这甚至可能不是一个有效的场景,除非我有一些非常强大的支持,一个la,来区分所有不同种类的时区。好吧,因为TimeZoneInfo被排除在外,您可能无法在框架本身中找到解决方案(但不要引用我的话) 在这种情况下,您是否考虑过反射TimeZoneInfo类并使用您在该类中找到的内容?@,我已经考虑过,但我更愿意保持合法性,而且我相当肯定这些信息必须嵌入到
这甚至可能不是一个有效的场景,除非我有一些非常强大的支持,一个la,来区分所有不同种类的时区。好吧,因为
TimeZoneInfo
被排除在外,您可能无法在框架本身中找到解决方案(但不要引用我的话)
在这种情况下,您是否考虑过反射
TimeZoneInfo
类并使用您在该类中找到的内容?@,我已经考虑过,但我更愿意保持合法性,而且我相当肯定这些信息必须嵌入到框架中,或者以某种不需要权限的偷偷方式从注册表中抓取…在.NET2.0中,您必须自己编写此代码。它涉及研究不同地区的夏令时法律,并将其构建到您自己的数据结构中。如果你只关心时区的一个子集,例如在美国,那么这个问题就有点简化了,但是如果你需要所有的全球时区,那么你有很多工作要做,并且当法律改变时,代码必须每隔几年更新一次。即使是最新版本的.NET中的新时区对象也需要windows更新,以便在法律发生变化时保持其正确性
查看,了解更多信息。是一个维护良好的时区规则公共域数据库。他们提供的数据也有一种编译格式,有很多库可以读取编译后的数据,比如:这里的时区库非常好:更不用说如果你想准确地确定历史日期的DST状态,除了必须保持最新,您必须归档在这些时区中应用过的所有DST规则。据我所知,目前没有任何操作系统或库会执行此操作。