擅长:python、mysql、java
<p>下面生成一个defaultdict映射时区偏移量(例如“-0400”)和通用地理时区名称(例如“美洲/纽约”)的缩写(例如“EDT”)。</p>
<pre><code>import os
import dateutil.tz as dtz
import pytz
import datetime as dt
import collections
result=collections.defaultdict(list)
for name in pytz.common_timezones:
timezone=dtz.gettz(name)
now=dt.datetime.now(timezone)
offset=now.strftime('%z')
abbrev=now.strftime('%Z')
result[offset].append(name)
result[abbrev].append(name)
print(result)
</code></pre>
<p>请注意,时区缩写可以有<a href="http://www.timeanddate.com/library/abbreviations/timezones/" rel="noreferrer">vastly different meanings</a>。例如,“EST”可以表示澳大利亚的东部夏季时间(UTC+10),也可以表示北美的东部标准时间(UTC-5)。</p>
<p>此外,对于使用夏令时标准时间的区域,偏移和缩写可能会更改。因此,保存静态dict可能无法一年365天提供正确的时区名称。</p>