首頁 >後端開發 >Python教學 >如何使用 Python 標準函式庫將 UTC 日期時間轉換為本機日期時間?

如何使用 Python 標準函式庫將 UTC 日期時間轉換為本機日期時間?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-03 09:02:02361瀏覽

How to Convert UTC Datetime to Local Datetime Using Python Standard Library?

使用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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn