这是我设置的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)
我想写下美国和欧洲的所有时区。我不想手动做。有没有办法自动化这个过程。
答案 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
正确处理当前不活跃的时区是留给读者的练习。