如何讓 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中文網其他相關文章!