首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么pytz.timezone("US/Mountain").localize(datetime.datetime.now())给我的是我的实际日期和时间,而不是美国/芒廷的?

为什么pytz.timezone("US/Mountain").localize(datetime.datetime.now())给我的是我的实际日期和时间,而不是美国/芒廷的?
EN

Stack Overflow用户
提问于 2019-07-05 12:11:24
回答 1查看 25关注 0票数 0

我想将一个朴素的日期时间转换成一个在美国/山区本地化的非朴素的日期时间。事实证明,它只是给了我一个非简单的datetime.datetime.now(),在datetime的末尾有一个-06:00。

代码语言:javascript
复制
naive_datetime = datetime.datetime.now() # Naive datetime

mtn_timezone = pytz.timezone("US/Mountain")

naive_datetime = mtn_timezone.localize(naive_datetime)

print(naive_datetime)

预期输出(美国/山地日期和时间):2019-07-04 22:05:04.644687-06:00

接收输出: 2019-07-05 01:05:04.644487-06:00

这个接收到的输出实际上是我在阿根廷本地化的本地日期时间

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-05 12:25:32

localize认为时间是正确的,只是缺少时区信息。这就是为什么它实际上不会改变时间。

您需要的是astimezone,它提供相同的时间点,并转换为所选的时区:

代码语言:javascript
复制
mtn_datetime = naive_datetime.astimezone(mtn_timezone)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56896452

复制
相关文章

相似问题

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