2010-03-07 5 views
26

Ceci est ma première fois ici, donc j'espère que je poste cette question au bon endroit. :)Comment vérifier si datetime est plus de 20 secondes

Je dois créer un contrôle d'inondation pour mon script, mais je ne suis pas bon pour toutes ces conversions avec UTC et autres. J'espère que tu peux m'aider. J'utilise Google App Engine avec Python. J'ai une datetimeproperty à la base de données DataStore qui devrait être vérifiée si elle est plus vieille que 20 secondes, alors continuez.

Quelqu'un pourrait-il m'aider?

Ainsi, en semi-psuedo:

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

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

Tout comme une note générale, il est une bonne idée de stocker toutes les dates UTC et appliquer fuseaux horaires à la dernière seconde possible. Voir http://www.enricozini.org/2009/debian/using-python-datetime/ pour info. – Cameron

+0

Merci pour la solution et l'info supplémentaire! :) – Jelle

Répondre

42

Vous pouvez utiliser le type de datetime.timedelta, comme ceci:

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

En savoir plus ici: http://docs.python.org/library/datetime.html

Cheers,

Philip

1

Essayez ceci:

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