簡體   English   中英

如何在Python中找到兩次之間的差異?

[英]How to find the difference between two times in Python?

我試圖在Python中找到兩次之間的區別。 確保時間在同一天。

#For example
s1 = '13:00' 
s2 = '12:58'

兩次之間的差應為2分鍾。 輸出應為: 2

這是我的代碼:

from datetime import datetime
s1 = '13:00'
s2 = '12:58'
FMT = '%H:%M'
tdelta = datetime.strptime(s2, FMT) - datetime.strptime(s1, FMT)
print(tdelta)

但它返回:

-1 day, 23:58:00

我該如何解決並將我的時間返回為: 2

您可以嘗試使用abs作為結果,即abs(datetime.strptime(s2, FMT) - datetime.strptime(s1, FMT))

from datetime import datetime
s1 = '13:00'
s2 = '12:58'
FMT = '%H:%M'
tdelta = abs(datetime.strptime(s2, FMT) - datetime.strptime(s1, FMT))
print(tdelta)

結果:

0:02:00

更新:

如以下評論中所建議,如果您特別希望minutes不同,則可以在tdelta使用.total_seconds()/60

from datetime import datetime
s1 = '13:00'
s2 = '12:58'
FMT = '%H:%M'
tdelta = datetime.strptime(s2, FMT) - datetime.strptime(s1, FMT)
minutes_difference = abs(tdelta.total_seconds()/60)
print(minutes_difference)

結果:

2.0

在這里我喜歡這個家伙的做法

還有一些代碼片段

從datetime導入datetime

from dateutil.relativedelta import relativedelta

    t_a = datetime.now()
    t_b = datetime.now()

    def diff(t_a, t_b):
        t_diff = relativedelta(t_b, t_a)  # later/end time comes first!
        return '{h}h {m}m {s}s'.format(h=t_diff.hours, m=t_diff.minutes, s=t_diff.seconds)

您可以使用Python pandas庫:

import pandas as pd

time_1 = pd.Timestamp('13:00')
time_2 = pd.Timestamp('12:58')
delta = time_1 - time_2
print(delta)

Timestamp()方法將允許您創建一個簡單的Timestamp。 這是您的輸出:

0 days 00:02:00

除非另有說明,否則時間戳記應該在同一天。

暫無
暫無

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

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