2010-09-04 4 views
8

Mam dwa ciągi data/czas:Obliczanie jeśli data jest w początkowym, przyszłych lub obecnych w Pythonie

start_date = 10/2/2010 8:00:00 

end_date = 10/2/2010 8:59:00 

muszę napisać funkcję do obliczania, jeśli zdarzenie jest w przyszłości, w przeszłości lub jeśli dzieje się to teraz - przeczytałem sporo dokumentacji, ale po prostu dość trudno było ją uruchomić.

W Pythonie nie wykonałem zbyt wielu obliczeń opartych na czasie, więc każda pomoc byłaby naprawdę doceniana!

Dziękujemy

Odpowiedz

15
from datetime import datetime 
start_date = "10/2/2010 8:00:00" 
end_date = "10/2/2010 8:59:00" 

# format of date/time strings; assuming dd/mm/yyyy 
date_format = "%d/%m/%Y %H:%M:%S" 

# create datetime objects from the strings 
start = datetime.strptime(start_date, date_format) 
end = datetime.strptime(end_date, date_format) 
now = datetime.now() 

if end < now: 
    # event in past 
elif start > now: 
    # event in future 
else: 
    # event occuring now 
+0

działa świetnie. Czapki z głów. Dzięki! – kron

+0

@kron: uwaga: czas lokalny może nie być jednostajny, np. Podczas przejścia w tryb "cofnij". Porównanie może się nie udać. Zobacz [Znajdź, czy upłynęły 24 godziny między datetimes - Python] (http://stackoverflow.com/q/26313520/4279) – jfs