[英]timezone aware vs. timezone naive in python
我正在使用python中的datetime對象。 我有一個函數,該函數需要一些時間,並且會發現該時間與現在之間的差異。
def function(past_time):
now = datetime.now()
diff = now - past_time
在將past_time傳遞給此函數之前,我對其進行了初始化,並將其初始化為datetime天真。 現在,它也是一個日期時間幼稚的對象。 但是,當我嘗試調用此函數時,我得到了錯誤:無法減去天真偏移和知道偏移的日期時間。 如果它們在理論上都是日期時間幼稚的對象,怎么辦?
任何幫助,將不勝感激。 謝謝!
datetime不進行任何跨時區計算,因為它是一個復雜且涉及廣泛的主題。
我建議將日期普遍轉換為UTC並對其進行數學運算。
我最近在一個大型python / Django項目中使用時區完成了一個項目,經過調查,我將內部的所有內容都轉換為UTC並僅在顯示時轉換為用戶。
您應該查看pytz以進行往返於UTC的轉換,並在應用程序中存儲所需時區的Olson代碼-可能與每個用戶相關聯,或者適合您的程序。
采用 :
now = now.replace(tzinfo=past_time.tzinfo)
diff = now之前-過去時間。
因此now和past_time的tzinfo相同。
僅當now和past_time打算位於同一時區時。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.