2010-03-07 20 views
26

To jest mój pierwszy raz tutaj, więc mam nadzieję, że opublikuję to pytanie we właściwym miejscu. :)Jak sprawdzić, czy datetime jest starsza niż 20 sekund?

Potrzebuję zbudować kontrolę przeciwpowodziową dla mojego skryptu, ale nie jestem dobry w ogóle w tym czasie, aby konwertować czas z UTC i tak dalej. Mam nadzieję, że możesz mi pomóc. Używam Google App Engine z Pythonem. Mam bazy danych właściwości Datestore w bazie danych DataStore, które powinny być sprawdzane, jeśli jest starszy niż 20 sekund, a następnie kontynuować.

Czy ktoś może mi pomóc?

Więc w 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

tylko jako ogólna uwaga, że ​​to dobry pomysł, aby przechowywać wszystkie daty UTC i zastosować stref czasowych w ostatniej sekundzie. Zobacz http://www.enricozini.org/2009/debian/using-python-datetime/ dla informacji. – Cameron

+0

Dzięki za rozwiązanie i dodatkowe informacje! :) – Jelle

Odpowiedz

42

można użyć typu danych datetime.timedelta, tak:

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

Czytaj więcej na ten temat tutaj: http://docs.python.org/library/datetime.html

Cheers,

Philip

1

Spróbuj tego:

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