【发布时间】:2016-03-24 00:50:14
【问题描述】:
斯德哥尔摩(欧洲)的时间是 15:0x。但我的本地化时间错了 1 小时:
>>> datetime.datetime.now()
datetime.datetime(2015, 12, 17, 15, 2, 42, 633000)
>>> babel.dates.format_datetime(datetime.datetime.now(), 'full', tzinfo=pytz.timezone('Europe/Stockholm'),locale='en')
u'Thursday, December 17, 2015 at 4:02:49 PM Central European Standard Time'
>>>
错在哪里?
【问题讨论】:
-
时区,显然......几乎任何时候你得到一个正好 1 小时(或其倍数)的预期日期,它都会与时区相关。
-
我很确定
datetime.now()已经包含了当地时间。试试datetime.utcnow(),它默认为Nonedocs.python.org/2/library/datetime.html#datetime.datetime.now的时区 -
但是您没有告诉系统您的输入日期在哪个时区,所以它假设某些“错误”。您只为输出指定了 TZ。
-
或者,您可以在 datetime.now 中指定时区:
datetime.datetime.now(tz=pytz.timezone('Europe/Stockholm')) -
另一种解决方案可能是将明确的 timezoe 传递给 dateime.now() 调用
标签: python datetime pytz python-babel