python 的datetime模組比較兩個時間的前後關係時,會出現報錯:
TypeError: can't compare offset-naive and offset-aware datetime
這是因為兩個時間不屬於同一型別,offset-naive是不含時區的型別,而offset-aware是有時區型別,兩者自然不能比較。
透過判斷datetime物件的tzinfo屬性,來獲悉是否有時區
now=datetime.datetime.now()now.tzinfo==None // 判斷是否有時區now + datetime.timedelta(hours=10) // 加減時間tz_utc_8 = timezone(timedelta(hours=8)) // 建立時區UTC+8:00dt = now.replace(tzinfo=tz_utc_8) // 強制設定為UTC+8:00 now=now.replace(tzinfo=None) //offset-aware型轉換為offset-naive型
//拿到UTC時間,並強制設定時區為UTC+0:00:utc_dt = datetime.utcnow().replace(tzinfo=timezone.utc)//# astimezone()將轉換時區為北京時間:bj_dt = utc_dt.astimezone(timezone(timedelta(hours=8)))
最新評論