擅长:python、mysql、java
<p>只是因为我的好奇心没有完全满足,我最近对这个问题做了更多的研究。</p>
<p>最初,这种差异似乎源于<code>pytz</code>的不同版本。然而,在将我的<code>pytz</code>版本降级到一个我已经确认我得到了与机器上的结果不同的版本之后,我发现这并不是问题的根源:即使使用相同版本的<code>pytz</code>我的机器似乎使用基于LMT的UTC偏移量,而其他机器则使用基于CDT或CST的一个。</p>
<p>根据我与@J.F.Sebastian的谈话,我认为唯一可能的其他可能性是系统级别的差异。我进一步研究了<code>pytz</code>源代码,发现<code>pytz</code>从中获取至少一些时区信息的文件位于<code>/usr/share/zoneinfo/</code>。所以我查看了文件<code>/usr/share/zoneinfo/America/Chicago</code>,虽然它是一个二进制文件,但其中一部分是可读的。文件的中间有一个时区列表:<code>LMTCDTCSTESTCWTCPT</code>。如您所见,<code>LMT</code>是列表中的第一个名字,正如@J.F.Sebastian所建议的,taht似乎是<code>pytz</code>在我最初的问题中描述的情况下使用的名字。</p>
<p>这就是Ubuntu 15.10中的列表。然而,在Ubuntu的早期版本(例如,可信和精确的版本)中,我得到的结果是-600而不是-609,相同的列表是<code>CDTCSTESTCWTCPT</code>。</p>
<p>我承认这来自于很多盲目的探索和半理解,但似乎这就是我在机器上看到的差异的原因。至于为什么不同版本的<code>zoneinfo</code>文件不同,以及这些不同对Ubuntu意味着什么,我不知道,但我想我会为那些同样好奇的人分享我的发现,并可能从社区获得有见地的更正/补充信息。</p>