我正在尝试将 UTC 日期/时间转换为“欧洲/伦敦”时区。我尝试使用日期使用 tz.localize,但有人告诉我日期时间并不天真。如果我尝试删除时区,我仍然会遇到同样的错误。
从根本上说,我试图获得这个日期: 2016/04/05 15:00 成为这个日期: 2016/04/05 14:00
我的代码如下,我使用 iso8601 解析日期。
date = 2016-05-04 15:00:00+00:00
fix_pars = iso8601.parse_date(str(date))
我试过使用 pytz.localize 但没有成功,因为它不喜欢我的日期已经设置了时区这一事实。
我发现这方面的文档非常困惑。我想要的只是一个神奇的函数,它接受一个日期并根据请求的时区进行转换。我最好使用什么功能?
最佳答案
import pytz
from datetime import datetime
tz = pytz.timezone('UTC')
naive_time = datetime.strptime('2016-04-05 15:00', '%Y-%m-%d %H:%M')
tz_time = tz.localize(naive_time)
london_tz = pytz.timezone('Europe/London')
london_time = tz_time.astimezone(london_tz)
这是我的输出:
>>> print tz_time
2016-04-05 15:00:00+00:00
>>> print london_time
2016-04-05 16:00:00+01:00
关于python - 在 Python 中使用 tz.localize 将 UTC 日期时间转换为英国日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37030094/