使用Python 標準庫將UTC 日期時間轉換為本地日期時間
在處理日期時間對象時,經常需要在UTC(協調一致)之間進行轉換世界時間)和當地時間。 Python 標準庫提供了內建功能來完成此操作。
pytz Python 3.3 的替代方案
在Python 3.3 及更高版本中,時區模組簡化了轉換過程:
<code class="python">from datetime import datetime, timezone def utc_to_local(utc_dt): return utc_dt.replace(tzinfo=timezone.utc).astimezone(tz=None)</code>
Python 2/3 的解
對於Python 2 和3,另一種方法是使用calendar.timegm 和datetime.fromtimestamp:<code class="python">import calendar from datetime import datetime, timedelta def utc_to_local(utc_dt): timestamp = calendar.timegm(utc_dt.timetuple()) local_dt = datetime.fromtimestamp(timestamp) assert utc_dt.resolution >= timedelta(microseconds=1) return local_dt.replace(microsecond=utc_dt.microsecond)</code>
範例用法
<code class="python">from datetime import datetime utc_dt = datetime(2023, 7, 18, 12, 0, 0, tzinfo=timezone.utc) local_dt = utc_to_local(utc_dt) print(local_dt)</code>為了說明轉換,請考慮以下範例:
2023-07-18 18:00:00.000000+06:00輸出:
無微秒解析度的日期時間注意事項
如果UTC 日期時間沒有微秒分辨率,astimezone 方法可能會引入原始日期時間中不存在的微秒值。為了確保精度,請使用為 Python 2/3 提供的替代方法。
處理DST 更改兩種解決方案都考慮了夏令時(DST) 更改並正確將UTC 日期時間轉換為適當的本地時間,並根據需要應用或刪除DST。以上是如何使用 Python 標準函式庫將 UTC 日期時間轉換為本機日期時間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!