为什么pytz.timezone(“US/Mountain”).localize(datetime.datetime.now())会给出我的实际日期和时间,而不是US/Mountain?

2024-05-14 21:21:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我想将一个朴素的datetime转换为一个非朴素的datetime,该datetime在美国/山区本地化。结果它只给了我一个非简单的datetime.datetime.now(),在datetime的末尾有一个-06:00

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

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


Tags: datetime时间nowusprinttimezone末尾mtn
1条回答
网友
1楼 · 发布于 2024-05-14 21:21:00

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

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

mtn_datetime = naive_datetime.astimezone(mtn_timezone)

相关问题 更多 >

    热门问题