首頁 >後端開發 >Python教學 >如何在 Python 中將 Naive Datetime 物件轉換為 Aware Datetime 物件?

如何在 Python 中將 Naive Datetime 物件轉換為 Aware Datetime 物件?

DDD
DDD原創
2024-11-24 22:59:11994瀏覽

How to Convert a Naive Datetime Object to an Aware Datetime Object in Python?

如何讓 Datetime 物件感知(不是 Naive)

在 Python 中,datetime 物件可以是 naive 的,也可以是感知的。幼稚對象沒有與之關聯的時區,而感知對象則有。這可能會在比較日期時間物件時導致問題,因為原始物件無法與感知物件進行比較。

有幾種方法可以讓原始日期時間物件感知。一種方法是使用 localize 方法。 localize 方法接受 pytz 時區物件作為參數,並傳回一個知道指定時區的新日期時間物件。

例如:

import datetime
import pytz

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

這將建立一個新的日期時間物件知道 UTC 時區。

另一種讓簡單的日期時間物件知道的方法是使用替換方法。 Replace 方法採用許多關鍵字參數,其中一個用於 tzinfo 屬性。 tzinfo 屬性可以設定為 pytz 時區對象,以使日期時間對象感知。

例如:

import datetime
import pytz

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

這也將創建一個感知UTC 的新日期時間對象timezone.

一旦一個日期時間對像被感知,它就可以與其他感知的日期時間物件進行比較。例如:

import datetime
import pytz

aware_1 = pytz.utc.localize(datetime.datetime(2011, 8, 15, 8, 15, 12, 0))
aware_2 = pytz.utc.localize(datetime.datetime(2011, 8, 15, 8, 15, 12, 0))

if aware_1 == aware_2:
    print("The two datetime objects are equal.")

這將列印「兩個日期時間物件相等。」

以上是如何在 Python 中將 Naive Datetime 物件轉換為 Aware Datetime 物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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