时区之间的Python差异

时间:2015-05-04 02:10:00

标签: python datetime timezone python-3.2

我必须创建一个代码,可以告诉我任何城市的当前时间(作为变量)并在该时间和utc之间打印utc偏移量。我已经有了以下代码,它给出了当前时间和时区的偏移量,但这个时区并不总是utc。注意:城市名称存储在文本文件中,用户应该能够添加和删除任何城市。我正在使用tkinter作为gui。

from datetime import datetime, timedelta
from pytz import timezone
import pytz

def tz():
    utc = pytz.utc
    amsterdam = timezone('Europe/Amsterdam')
    fmt = '%Y-%m-%d %H:%M:%S %Z%z'
    loc_dt = utc.localize(datetime.today())
    tz = loc_dt.astimezone(amsterdam)
    print(tz.strftime(fmt))

文件内容如下:

Amsterdam
Brasilia
Los Angeles
Abu Dhabi
Tokyo
Singapore

有人可以帮我一个简单的代码吗?提前谢谢

1 个答案:

答案 0 :(得分:1)

你已经在使用pytz了,所以我会选择:

from datetime import datetime
from pytz import timezone, all_timezones

def to_timezone(dt, tz):
  assert dt.tzinfo is not None
  assert tz in all_timezones
  return dt.astimezone(timezone(tz))

print to_timezone(datetime.now(timezone('UTC')), 'Europe/Amsterdam')

我默认将它设置为UTC,但重点是:

  • 有一个非天真的日期时间
  • 转换它