为什么1小时错了?

Why 1 hour wrong?

斯德哥尔摩(欧洲)时间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'
>>>

哪里出错了?

问题似乎出在 datetime.datetime.now() 调用的当地时间。如评论中所述,使用 datetime.datetime.utcnow() 作为时区不可知论者 coordinated universal time,或将所需的时区信息输入日期时间调用 datetime.datetime.now(tz=pytz.timezone('Europe/Stockholm'))

显式优于隐式。设置 now 的时区:

now = datetime.datetime.now(tz=pytz.timezone('Europe/Stockholm'))