Py学习  »  Python

python正在为datetime创建if语句[重复]

Dziu Gas • 5 年前 • 1607 次点击  

我有一个变量 <type 'datetime.timedelta'> 我想把它和某些价值观进行比较。

假设d产生了这个 datetime.timedelta 价值 0: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() 但这似乎确实有效。有比较这个值的简单方法吗?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/39794
 
1607 次点击  
文章 [ 4 ]  |  最新文章 5 年前
Max
Reply   •   1 楼
Max    9 年前
if d.total_seconds() > 60:
  print("elapsed time is greater than 1 minute")

但它需要Python2.7+

Argyrios Tzakas
Reply   •   2 楼
Argyrios Tzakas    12 年前

如果我错了,请纠正我,但我认为您也可以使用以下方法:

而不是

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

你可以说

if elapsed.seconds > 1:
SilentGhost
Reply   •   3 楼
SilentGhost    15 年前

你只需要创造 timedelta 从头开始的对象,之后的比较很简单:

>>> a = datetime.timedelta(minutes=1)
>>> b = datetime.timedelta(minutes=1, seconds=1)
>>> a < b
True
>>> a > b
False
Mark Rushakoff
Reply   •   4 楼
Mark Rushakoff    15 年前

你必须 create a new 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