簡體   English   中英

如何使用箭頭獲取兩個日期之間的秒數?

[英]How to get the number of seconds between two dates with arrow?

我使用arrow來處理日期,發現不知道如何自然地獲得兩個日期之間的秒數:

>>> import arrow
>>> first = arrow.get('2019-03-06')
>>> second = arrow.get('2019-02-06')
>>> (first-second).days
28
>>> (first-second).seconds
0

從上面的示例中,看起來.days給出了預期的輸出,但是.seconds給出了“處於秒級”的秒數,即僅查看秒數時。 這意味着最大數量為60

但是,這是不正確的:

>>> (arrow.now()-first).seconds
70223

70000秒大約是19個小時,這是從最后一個午夜(今天開始)到現在(大約20:30)之間的正確小時數。

因此,我迷失了.seconds實際提供的功能。

seconds屬性僅反映第一天和第二天之間的差異(如果它們在一天之內)。 如果天數超過1天,則days屬性將增加1,seconds屬性將重置為零。 如果要獲取它們之間的總秒數,請調用timedelta的total_seconds()方法。 差異見下文

import arrow

first = arrow.get('2019-03-06 02:00:00')
second = arrow.get('2019-03-05 01:00:00')
d0 = first - second
d1 = d0.days
d2 = d0.seconds
d3 = d0.total_seconds()
print('total days: {}'.format(d1))
print('seconds within day: {}'.format(d2))
print('total seconds: {}'.format(d3))

# total days: 1
# seconds within day: 3600
# total seconds: 90000.0

日期時間的文檔

.seconds是一天中的秒數

.total_seconds()是將整個timedelta轉換為秒

例如:

first = arrow.get('2019-03-06 02:00:00')
second = arrow.get('2019-03-05 01:00:00')

(first - second).seconds
> 3600

(first - second).total_seconds()
> 90000.0

因此,相差不到一天, .seconds & .total_seconds()相同。

暫無
暫無

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

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