我试图将一个'US/Eastern'的日期时间转换成另一个时区的等效日期时间,例如'US/Central'。似乎使用pytz和astimezone是实现这一目标的好方法,可以参考以下链接:
Converting timezone-aware datetime to local time in Python
我为东部标准时间创建了一个日期时间对象:
以下是 "chicago_dt" 的输出结果:
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, est)
这是ny_dt的输出结果:
Out[6]: datetime.datetime(2021, 3, 1, 9, 30, tzinfo=<DstTzInfo 'US/Eastern' LMT-1 day, 19:04:00 STD>)
我随后尝试将此日期时间转换为使用定义的cst时区:
chicago_dt = ny_dt.astimezone(cst)
以下是 "chicago_dt" 的输出结果:
Out[8]: datetime.datetime(2021, 3, 1, 8, 26, tzinfo=<DstTzInfo 'US/Central' CST-1 day, 18:00:00 STD>)
因此,将930am EST转换为826am CST是不正确的。应该是830am CST,即早一个小时。有什么最好的方法来做到这一点?谢谢!