2011-12-16 4 views
1

私は2回比較したい、新しい時間が2分を超える場合はif文が出力を出力し、datetime.datetime.now()の出力を得ることができます私は、古い時間が2分未満かどうかをチェックしますか?pythonが時間を引いてループを実行する

#!/usr/bin/env python 


import datetime 
from time import sleep 
now = datetime.datetime.now() 

sleep(2) 

late = datetime.datetime.now() 
constant = 2 
diff = late-now 
if diff <= constant: 
    print "True time is less than 2min" 
else: 
    print "Time exceeds 2 mins" 

更新日:

私は今、ファイル内の文字列として古い日付を格納し、現在の時間からそれを引くのですが、古い日付が

2011-12-16午前16時14分の形式で格納されます。 50.800856

ので、私は

now = "2011-12-16 16:14:50.838638" 

sleep(2) 

nnow = datetime.strptime(now, '%Y-%m-%d %H:%M:%S') 

late = datetime.now() 

diff = late-nnow 

を行うとき、それは私に、このエラーが発生します

つの datetimeインスタンスを差し引くは
+0

diffがdatetime.timedeltaオブジェクトであり、それは.totalseconds()メソッドを持っているか、心配は@krisdigitxない – yosukesabai

+0

感謝yosukesabai – krisdigitx

答えて

3

total_seconds方法を持っているtimedeltaを返します。

contant = 2 * 60 
diff = late-now 
if diff.total_seconds() <= constant: 
+0

感謝のsje397を.seconds。 ..私はちょうど最近この仕事をたくさん使っています:) – krisdigitx

+0

を働いたプロパティ – sje397

2

これはsje397からの答えは完璧だったので、更新に唯一の答えです。

は、全体の時間の文字列に一致するように、このような形式の文字列を使用します。

nnow = datetime.strptime(now, '%Y-%m-%d %H:%M:%S.%f') 

% fはドットの後にマイクロ秒に一致します。これはPython 2.6以来の新機能です。

1

あなたは自分自身でdatetimeオブジェクトを比較できます。

from datetime import datetime, timedelta 

ts = datetime.strptime("2011-12-16 16:14:50.838638Z", '%Y-%m-%d %H:%M:%S.%fZ') 
ts += timedelta(minutes=2) # add 2 minutes 

if datetime.utcnow() < ts: 
    print("time is less") 
else: 
    print("time is more or equal") 
関連する問題