我正在尝试将“US/东部”日期时间转换为另一个时区的等效日期时间,如“US/Central”。使用pytz和astimezone似乎是一种很好的方式来实现这一点:
在Python中将支持时区的datetime转换为本地时间
import pytz
import datetime as DT
est = pytz.timezone('US/Eastern')
cst = pytz.timezone('US/Central')
我为est创建了一个datetime对象:
ny_dt = DT.datetime(2021, 3, 1, 9, 30, 0, 0, est)
以下是ny的输出
_
dt:
Out[6]: datetime.datetime(2021, 3, 1, 9, 30, tzinfo=)
然后,我尝试将此日期时间转换为使用定义的cst时区:
chicago_dt = ny_dt.astimezone(cst)
以下是芝加哥的输出
_
dt:
Out[8]: datetime.datetime(2021, 3, 1, 8, 26, tzinfo=)
所以这里将930am EST转换为826am CST,这是不正确的。应该是CST时间上午830,或者正好提前一个小时。要做到这一点,最好的方法是什么?谢谢!
发布于 2021-03-01 21:00:41
import pytz
import datetime as DT
est = pytz.timezone('US/Eastern')
cst = pytz.timezone('US/Central')
ny_dt = DT.datetime(2021, 3, 1, 9, 30, 0, 0)
ny_dt1 = est.localize(ny_dt)
chicago_dt = ny_dt1.astimezone(cst)
输出:
ny_dt1
datetime.datetime(2021, 3, 1, 9, 30, tzinfo=)
chicago_dt
datetime.datetime(2021, 3, 1, 8, 30, tzinfo=)
从
文档
这个库与tzinfo实现的文档中的Python API不同;如果您想要创建本地挂钟时间,则需要使用本文档中记录的localize()方法。
https://stackoverflow.com/questions/66421970
复制相似问题