簡體   English   中英

時區感知與時區天真在python中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM