9

I have two date/time strings:

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

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

I need to write a function to calculate if the event is in the future, in the past or if it is happening right now - I've read a fair bit of documentation but just finding it quite hard to get this to work.

I've not really done much time based calculations in Python so any help would be really appreciated!

Many thanks

Richard Fearn
  • 25,073
  • 7
  • 56
  • 55
kron
  • 111
  • 1
  • 2
  • 3

1 Answers1

19
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
Richard Fearn
  • 25,073
  • 7
  • 56
  • 55
  • @kron: beware: the local time may be non-monotonous e.g., during a "fall back" DST transition. The comparison may fail. See [Find if 24 hrs have passed between datetimes - Python](http://stackoverflow.com/q/26313520/4279) – jfs Apr 02 '15 at 22:06