创建知道时区的datetime对象返回错误的时区 [英] creating a timezone aware datetime object returns a wrong timezone

查看:92
本文介绍了创建知道时区的datetime对象返回错误的时区的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我为'美国/东部'创建时区感知日期时间对象并打印出来时,它显示出我的时区为- 4:56 而不是 -4:00

when I create a timezone aware datetime object for 'US/Eastern' and print it out, It shows as if my time zone is -4:56 instead of -4:00

>>> obj = datetime.datetime(2020, 7, 1, 9, 30, tzinfo=pytz.timezone('US/Eastern'))
>>> print(obj)
2020-07-01 09:30:00-04:56

而不是预期:

2020-07-01 09:30:00-04:00

我做错什么了吗?

推荐答案

文档,构造日期时间对象无法通过这种方式工作。

It is mentioned in the docs that constructing datetime objects doesn't work this way.

您应该这样做:

from datetime import datetime

from pytz import timezone

eastern = timezone('US/Eastern')
obj = eastern.localize(datetime(2020, 7, 1, 9, 30))


>>> obj
datetime.datetime(2020, 7, 1, 9, 30, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>)
>>> print(obj)
2020-07-01 09:30:00-04:00

这篇关于创建知道时区的datetime对象返回错误的时区的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆