簡體   English   中英

比較python中的時間增量

[英]Comparing a time delta in python

我有一個<type 'datetime.timedelta'>變量,我想將它與某些值進行比較。

讓我們說d產生這個datetime.timedelta0:00:01.782000

我想比較一下:

#if d is greater than 1 minute 
if d>1:00:
  print "elapsed time is greater than 1 minute"

我試過轉換datetime.timedelta.strptime()但似乎確實有效。 是否有更簡單的方法來比較這個值?

您必須使用指定的時間創建一個新的timedelta

d > timedelta(minutes=1)

或者這個略微更完整的腳本將有助於詳細說明:

import datetime
from time import sleep

start = datetime.datetime.now()
sleep(3)
stop = datetime.datetime.now()

elapsed = stop - start

if elapsed > datetime.timedelta(minutes=1):
    print "Slept for > 1 minute"

if elapsed > datetime.timedelta(seconds=1):
    print "Slept for > 1 second"

輸出:

Slept for > 1 second

你只需要從頭創建timedelta對象,之后的比較是微不足道的:

>>> a = datetime.timedelta(minutes=1)
>>> b = datetime.timedelta(minutes=1, seconds=1)
>>> a < b
True
>>> a > b
False

如果我錯了,請糾正我,但我認為你也可以使用以下內容:

代替

if elapsed > datetime.timedelta(seconds=1):

你可以說

if elapsed.seconds > 1:
if d.total_seconds() > 60:
  print("elapsed time is greater than 1 minute")

但它需要python 2.7+

暫無
暫無

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

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