Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何确定给定日期是否为.NET 2.0中给定时区的夏令时?_.net_.net 2.0_Timezone_Medium Trust - Fatal编程技术网

如何确定给定日期是否为.NET 2.0中给定时区的夏令时?

如何确定给定日期是否为.NET 2.0中给定时区的夏令时?,.net,.net-2.0,timezone,medium-trust,.net,.net 2.0,Timezone,Medium Trust,我在.NET2.0上,在中等信任下运行(所以和注册表是不允许的选项)。我要求用户提供两个日期和一个时区,并希望能够自动确定是否需要调整DST的时区 这甚至可能不是一个有效的场景,除非我有一些非常强大的支持,一个la,来区分所有不同种类的时区。好吧,因为TimeZoneInfo被排除在外,您可能无法在框架本身中找到解决方案(但不要引用我的话) 在这种情况下,您是否考虑过反射TimeZoneInfo类并使用您在该类中找到的内容?@,我已经考虑过,但我更愿意保持合法性,而且我相当肯定这些信息必须嵌入到

我在.NET2.0上,在中等信任下运行(所以和注册表是不允许的选项)。我要求用户提供两个日期和一个时区,并希望能够自动确定是否需要调整DST的时区


这甚至可能不是一个有效的场景,除非我有一些非常强大的支持,一个la,来区分所有不同种类的时区。

好吧,因为
TimeZoneInfo
被排除在外,您可能无法在框架本身中找到解决方案(但不要引用我的话)


在这种情况下,您是否考虑过反射
TimeZoneInfo
类并使用您在该类中找到的内容?

@,我已经考虑过,但我更愿意保持合法性,而且我相当肯定这些信息必须嵌入到框架中,或者以某种不需要权限的偷偷方式从注册表中抓取…

在.NET2.0中,您必须自己编写此代码。它涉及研究不同地区的夏令时法律,并将其构建到您自己的数据结构中。如果你只关心时区的一个子集,例如在美国,那么这个问题就有点简化了,但是如果你需要所有的全球时区,那么你有很多工作要做,并且当法律改变时,代码必须每隔几年更新一次。即使是最新版本的.NET中的新时区对象也需要windows更新,以便在法律发生变化时保持其正确性


查看,了解更多信息。

是一个维护良好的时区规则公共域数据库。他们提供的数据也有一种编译格式,有很多库可以读取编译后的数据,比如:

这里的时区库非常好:

更不用说如果你想准确地确定历史日期的DST状态,除了必须保持最新,您必须归档在这些时区中应用过的所有DST规则。据我所知,目前没有任何操作系统或库会执行此操作。