Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.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
Python 为什么Pytz在纽约和底特律有不同的时区列表?_Python_Timezone_Pytz - Fatal编程技术网

Python 为什么Pytz在纽约和底特律有不同的时区列表?

Python 为什么Pytz在纽约和底特律有不同的时区列表?,python,timezone,pytz,Python,Timezone,Pytz,从我在网上所能找到的一切来看,纽约和底特律的时区(包括DST)完全没有区别。这只是检查前两个的结果。他们两个都有理由,对吧 编辑:扩展我的研究,所有列出的UTC-5时区都有相同的精确DST信息,所以现在看起来更加冗余。我可以删除所有以下一个东部标准时间。。。这样做有什么不对吗 >>> pytz.country_timezones['US'] America/New_York America/Detroit America/Kentucky/Louisville America

从我在网上所能找到的一切来看,纽约和底特律的时区(包括DST)完全没有区别。这只是检查前两个的结果。他们两个都有理由,对吧

编辑:扩展我的研究,所有列出的UTC-5时区都有相同的精确DST信息,所以现在看起来更加冗余。我可以删除所有以下一个东部标准时间。。。这样做有什么不对吗

>>> pytz.country_timezones['US']

America/New_York
America/Detroit
America/Kentucky/Louisville
America/Kentucky/Monticello
America/Indiana/Indianapolis
America/Indiana/Vincennes
America/Indiana/Winamac
America/Indiana/Marengo
America/Indiana/Petersburg
America/Indiana/Vevay
America/Chicago
America/Indiana/Tell_City
America/Indiana/Knox
America/Menominee
America/North_Dakota/Center
America/North_Dakota/New_Salem
America/North_Dakota/Beulah
America/Denver
America/Boise
America/Phoenix
America/Los_Angeles
America/Metlakatla
America/Anchorage
America/Juneau
America/Sitka
America/Yakutat
America/Nome
America/Adak
Pacific/Honolulu

pytz使用了时区定义,该定义显然将时区定义为“自1970年以来当地时钟都一致的任何国家地区”。我怀疑时区或夏令时行为的历史变化导致了当前具有相同时间但并不总是具有相同时间的地点。(例如,我认为博伊西和丹佛现在在时间上也一样,但它们也有不同的条目。)

Pytz使用IANA时区数据库(也称为奥尔森数据库)。正如@brenbarn所提到的,IANA数据库中的时区反映了“自[1月1日]以来所有地方时钟都一致的任何国家区域”,这不仅包括时间,还包括DST变化

根据《美国东部标准时间》的说法,“密歇根州大部分地区从1973年开始观测DST,但在1975年有点晚。”这意味着1970年密歇根州在东部标准时间,而东海岸观测夏时制。此外,DST在1975年4月27日才在密歇根州开始,也就是东部时区其余部分结束后的几周

如果您下载的是最新的文件,则应该有各种文件(北美、南美、非洲等),这些文件具有人类可读的关于不同时区的描述,以及关于它们不在不同时区的任何更改/原因的解释



根据您的编辑,印第安纳州代表美国境内的一个国家,因为它历史上位于两个时区的边界线上。截至2014年11月,印第安纳州大部分位于东部时区(芝加哥附近和埃文斯维尔附近的几个县除外,这两个县位于中部时间),整个州都实行夏令时。但自1970年以来,中东部边界发生了多次变化。事实上,我敢打赌,这些时区中的大多数都发生在2006年和2007年许多县切换时区时,在这个过程中采用了夏令时。

它允许用户选择他们最近的城市,而不必知道它在哪个时区。这不是不同城市存在的原因。你可以很容易地接近一个不在你的时区的城市。例如,印第安纳州西部的大部分地区都在美国/纽约时间,尽管它离芝加哥更近;邻近的一个城镇,被认为是芝加哥的一部分,将使用美国/芝加哥,即使它离那个城市实际距离更远。城市只是参考TZ定义的方便把手。
(UTC -5:00) New_York
(UTC -5:00) Detroit
(UTC -5:00) Kentucky/Louisville
(UTC -5:00) Kentucky/Monticello
(UTC -5:00) Indiana/Indianapolis
(UTC -5:00) Indiana/Vincennes
(UTC -5:00) Indiana/Winamac
(UTC -5:00) Indiana/Marengo
(UTC -5:00) Indiana/Petersburg
(UTC -5:00) Indiana/Vevay