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

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

DDD
發布: 2024-11-24 22:59:11
原創
992 人瀏覽過

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板