下面的代碼在 MacOS 和 Ubuntu(AWS Ubuntu 2.0 EC2 實體)上運行時會產生不同的結果
import datetime
import pytz
dt = datetime.datetime(year=2020, month=12, day=3, hour=8, minute=30)
dt_aware = dt.astimezone(pytz.timezone('Europe/Paris'))
print(dt_aware)
在 MacOS BigSur 11.6 上,它回傳:2020-12-03 00:30:00 01:00
在 Ubuntu 2.0 上,它回傳:2020-12-03 09:30:00 01:00。
在這兩種情況下:
- 使用 Python 3.8
- 使用的是pytz 2020.4版本
說明結果不同的原因是什么?
編輯:我想將“2020/12/03 08:30”表示為巴黎的日期時間。所以我希望雙方都回來2020-12-03 08:30:00 01:00
uj5u.com熱心網友回復:
這可能是因為 AWS 實體與您的 MacOS 機器不在同一時區。當您創建沒有指定時區的 dateTime 時,它??將使用基于您的機器/作業系統的默認時區。
然后您將其調整為 Europe Paris,并將其從默認時區更改為該時區。
所以 AWS 實體可能是 UTC 并且與巴黎僅相差 1,所以 8 變成了 9。
您的 MacOS 可能位于美國(太平洋地區?)的某個地方,距 UTC 時間 8 小時,距巴黎 9 小時。因此,當設定到巴黎時,它的總時差為 9 小時。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/394836.html
