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

时间:2019-07-05 04:11:23

标签: python datetime timezone

我想将原始日期时间转换为本地化在美国/山地的非原始日期时间。事实证明,它只是给我一个非幼稚的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

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

1 个答案:

答案 0 :(得分:0)

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

您希望将astimezone转换为您选择的时区,以提供相同的时刻:

mtn_datetime = naive_datetime.astimezone(mtn_timezone)