簡體   English   中英

在python中計算時差

[英]Calculate time difference in python

在postgresql中定義的datetime表字段: Column("created_on",DateTime(timezone=True),default=datetime.datetime.utcnow)

在python代碼中,我將當前時間轉換為感知時間為:

mcurr_time = datetime.datetime.now().replace(tzinfo=pytz.UTC)

我得到的時間為:

2017-03-30 21:44:51.394387 + 00:00

當我使用sqlalchemy從表中檢索時間時,我得到:

mcreation_time = 2017-03-30 15:05:01.350078 + 05:30

如何找到兩者之間的差異,或者必須使用哪種轉換來將差異與小時數進行比較? 所有表都有時區感知日期時間。 當我檢查所有示例並感到困惑時,我需要確切的代碼。

這兩個日期之間的差額有效,無需任何轉換。 必須將結果與示例2小時(變量var1)進行比較,並基於輸出,需要采取某些措施。 這2個小時我轉換為:

mcalc = datetime.timedelta(seconds=var1*60*60)

所以我想做的是

diff_tm = (mcurr_time - mcreations_time)

if diff_tm > mcalc:
    do_some1()
else:
    do_some2()

不知道在任何日期(最好是當前時間) 是否都需要進行任何轉換,因為我的所有表都如上所述定義。 任何客戶(即世界上任何地方)的兩個日期中的時差均應正確

通過刪除時區偏移並在計算中使用來解決此問題:

mcurr_time = datetime.datetime.utcnow().replace(tzinfo=pytz.UTC)
mcurr_time = mcurr_time.replace(
          tzinfo=psycopg2.tz.FixedOffsetTimezone(offset=0, name=None))

mcreation_time = mcreation_time.replace(
          tzinfo=psycopg2.tz.FixedOffsetTimezone(offset=0, name=None))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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