簡體   English   中英

如何格式化“ datetime.timedelta”類型

[英]How to format the “datetime.timedelta” type

我正在像這樣計算兩個時間值之間的差:

current_time = '2019-08-22T17:58:28'
alert_time = '2019-08-22T16:58:28'

diff = datetime.datetime.strptime(current_time, datetimeFormat) - datetime.datetime.strptime(alert_time, datetimeFormat)

diff
datetime.timedelta(0, 3600)

print(diff)
1:00:00

因此,這按預期工作,但是我需要將diff變量添加到字典中,並且我只需要添加數值差,例如3600

那么如何將diff格式化為3600

我知道我可以做str(diff)返回1:00:00但我希望該值以秒為單位

做這個:

import datetime

current_time = '2019-08-22T17:58:28'
alert_time = '2019-08-22T16:58:28'
datetimeFormat = '%Y-%m-%dT%H:%M:%S'

diff = datetime.datetime.strptime(current_time, datetimeFormat) - datetime.datetime.strptime(
    alert_time, datetimeFormat
)

d = diff.total_seconds()

print(d)

輸出:

3600.0

更新資料

看到@felixkagota的答案之后。 我做了一個快速的谷歌來找出timedelta.secondstimedelta.to_seconds()之間的區別。 基本上, timedelta.seconds返回整數,即:它不占幾分之一秒。 例如:

import datetime

current_time = '2019-08-22T17:58:28:000000'
alert_time = '2019-08-22T16:58:28:123456'
datetimeFormat = '%Y-%m-%dT%H:%M:%S:%f'

diff = datetime.datetime.strptime(current_time, datetimeFormat) - datetime.datetime.strptime(
    alert_time, datetimeFormat
)

print(diff.total_seconds())
print(diff.seconds)

給出:

3599.876544
3599

只是做diff.seconds。 Timedelta類包含一個seconds屬性,該屬性返回以秒為單位的timedelta值。

暫無
暫無

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

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