2010-03-07 11 views
26

Questa è la mia prima volta qui quindi spero di pubblicare questa domanda nel posto giusto. :)Come verificare se datetime è più vecchio di 20 secondi

Ho bisogno di compilare il controllo dell'inondazione per il mio script ma non sono bravo in tutte queste conversioni datetime in time con UTC e roba del genere. Spero che tu possa aiutarmi. Sto utilizzando Google App Engine con Python. Ho una dataproperty nel database DataStore che dovrebbe essere controllato se è più vecchio di 20 secondi, quindi procedere.

Qualcuno potrebbe darmi una mano?

Quindi, in semi-pseudo:

q = db.GqlQuery("SELECT * FROM Kudo WHERE fromuser = :1", user) 
lastplus = q.get() 

if lastplus.date is older than 20 seconds: 
print"Go!" 
+0

Proprio come una nota generale, è una buona idea per memorizzare tutte le date di UTC e applicare fusi orari all'ultimo secondo possibile. Vedi http://www.enricozini.org/2009/debian/using-python-datetime/ per informazioni. – Cameron

+0

Grazie per la soluzione e le informazioni extra! :) – Jelle

risposta

42

È possibile utilizzare il tipo di dati datetime.timedelta, in questo modo:

import datetime 
lastplus = q.get() 
if lastplus.date < datetime.datetime.now()-datetime.timedelta(seconds=20): 
    print "Go" 

Per saperne di più su di esso qui: http://docs.python.org/library/datetime.html

Cheers,

Philip

1

Prova questa:

from datetime import timedelta, datetime 
if lastplus.date < datetime.utcnow() + timedelta(seconds = -20): 
    print "fee fie fo foo!" 
Problemi correlati