質問

たいと思いる場合、特定のpython datetimeオブジェクトは以上のX時間は分です。いいようなもの:

if (datetime.now() - self.timestamp) > 100
# Where 100 is either seconds or minutes

を含むに関連して発生するタイプエラーになります。

何が正しい日時を比較python?って見た WorkingWithTime あなどってきた。思いのdatetimeオブジェクトで表される秒数ができるような通常のintと比較しました。

てくださいリストのdatetimeベストプラクティスに関する

役に立ちましたか?

解決

をご利用 datetime.timedelta クラス:

>>> from datetime import datetime, timedelta
>>> then = datetime.now() - timedelta(hours = 2)
>>> now = datetime.now()
>>> (now - then) > timedelta(days = 1)
False
>>> (now - then) > timedelta(hours = 1)
True

えおうとして書き込まれます:

if (datetime.now() - self.timestamp) > timedelta(seconds = 100)

または

if (datetime.now() - self.timestamp) > timedelta(minutes = 100)

他のヒント

を比較し、違いをtimedeltaを作成してください:

if datetime.datetime.now() - timestamp > datetime.timedelta(seconds = 5):
    print 'older'

代替:

if (datetime.now() - self.timestamp).total_seconds() > 100:

と仮定します。タイムスタンプはdatetimeインスタンス

利用できる組み合わせ、'日'と'秒'属性が返されるオブジェクトの答えは、このように:

def seconds_difference(stamp1, stamp2):
    delta = stamp1 - stamp2
    return 24*60*60*delta.days + delta.seconds + delta.microseconds/1000000.

利用abs()を答えればいいのは正の数秒です。

発見える、タイムスタンプが使用できるようになります:

if seconds_difference(datetime.datetime.now(), timestamp) < 100:
     pass

でき差し引二 datetime オブジェクトの差です。
利用できる datetime.fromtimestamp 構文解析しPOSIX時にスタンプを記録します。

このように:

# self.timestamp should be a datetime object
if (datetime.now() - self.timestamp).seconds > 100:
    print "object is over 100 seconds old"
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top