首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Python中将美国/东部时区转换为美国/中部时区

如何在Python中将美国/东部时区转换为美国/中部时区
EN

Stack Overflow用户
提问于 2021-03-01 20:15:30
回答 1查看 83关注 0票数 1

我正在尝试将“US/东部”日期时间转换为另一个时区的等效日期时间,如“US/Central”。使用pytz和astimezone似乎是一种很好的方式来实现这一点:

在Python中将支持时区的datetime转换为本地时间

代码语言:javascript
运行
复制
import pytz
import datetime as DT
est = pytz.timezone('US/Eastern')
cst = pytz.timezone('US/Central')

我为est创建了一个datetime对象:

代码语言:javascript
运行
复制
ny_dt = DT.datetime(2021, 3, 1, 9, 30, 0, 0, est)

以下是ny的输出

_

dt:

代码语言:javascript
运行
复制
Out[6]: datetime.datetime(2021, 3, 1, 9, 30, tzinfo=)

然后,我尝试将此日期时间转换为使用定义的cst时区:

代码语言:javascript
运行
复制
chicago_dt = ny_dt.astimezone(cst)

以下是芝加哥的输出

_

dt:

代码语言:javascript
运行
复制
Out[8]: datetime.datetime(2021, 3, 1, 8, 26, tzinfo=)

所以这里将930am EST转换为826am CST,这是不正确的。应该是CST时间上午830,或者正好提前一个小时。要做到这一点,最好的方法是什么?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-01 21:00:41

代码语言:javascript
运行
复制
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)

输出:

代码语言:javascript
运行
复制
ny_dt1
datetime.datetime(2021, 3, 1, 9, 30, tzinfo=)
chicago_dt
datetime.datetime(2021, 3, 1, 8, 30, tzinfo=)

文档

这个库与tzinfo实现的文档中的Python API不同;如果您想要创建本地挂钟时间,则需要使用本文档中记录的localize()方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66421970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档