Python的tzinfo引用文件

时间:2014-01-07 05:54:47

标签: python date

这是我设置的tzinfo。

tz = {'CST' : -6*3600, 'BST' : +1*3600, 'EST' :-5*3600,'MST':-7*3600,'PST':-8*3600, 'CDT' :-5*3600, 'EDT' : -4*3600, 'PDT':-7*3600}

dt = parser.parse(date,default = DEFAULT_DATE, tzinfos=tz)

我想写下美国和欧洲的所有时区。我不想手动做。有没有办法自动化这个过程。

1 个答案:

答案 0 :(得分:0)

使用pytz包:

tzinfos = {}
for timezone in pytz.all_timezones:
   if timezone.startswith(("Europe", "US")):

       tz = pytz.timezone(timezone)
       start = datetime(2013, 1, 1)
       # loop over the whole year to catch daylight savings, got to be a better way
       for days_delta in range(356):
           d_time = tz.normalize((start + timedelta(days=days_delta)).replace(tzinfo=tz))
           tzinfos[d_time.tzname()] = d_time.utcoffset().total_seconds()
print tzinfos

正确处理当前不活跃的时区是留给读者的练习。