首頁 >後端開發 >Python教學 >如何在 Python 中將原始日期時間物件轉換為時區感知物件?

如何在 Python 中將原始日期時間物件轉換為時區感知物件?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-25 20:18:11230瀏覽

How Can I Convert a Naive Datetime Object to a Timezone-Aware Object in Python?

將原始日期時間物件轉換為時區感知

在 Python 中,日期時間物件可以是時區感知的或時區感知的。時區感知日期時間物件包含特定時區的引用,而時區原生日期時間物件則不包含。

在比較時區感知和時區原生日期時間對象時,了解以下內容非常重要:

  1. astimezone():此方法嘗試轉換時區天真datetime物件轉換為時區感知的datetime 物件。但是,它不能應用於原始日期時間對象,如提供的程式碼片段所示。
  2. replace():replace 方法採用參數來取代日期時間物件中的值,包括tzinfo 欄位。使用此方法,可以將 tzinfo 欄位設定為所需的時區。但是,如程式碼區塊所示,替換不會自動使日期時間物件具有時區感知能力。

要將原始日期時間對象正確轉換為時區感知對象,請使用localize () 方法:

import datetime
import pytz

unaware = datetime.datetime(2011, 8, 15, 8, 15, 12, 0)
aware = pytz.utc.localize(unaware)

localize 方法採用原始日期時間物件和特定時區作為參數。它傳回一個新的時區感知的日期時間對象,保留原始日期時間值。

對於不涉及夏令時計算的特定時區,例如UTC,也可以使用以下方法:

import datetime
import pytz

unaware = datetime.datetime(2011, 8, 15, 8, 15, 12, 0)
aware = unaware.replace(tzinfo=pytz.UTC)

在這種情況下,replace 直接將tzinfo 欄位設定為指定時區,欄位從而產生一個時區感知的日期時間物件。

以上是如何在 Python 中將原始日期時間物件轉換為時區感知物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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