2. UTCDateTime

All absolute time values within ObsPy are consistently handled with the UTCDateTime class. It is based on a high precision POSIX timestamp and not the Python datetime class because precision was an issue.

2.1. Initialization

>>> from obspy.core import UTCDateTime
>>> UTCDateTime("2012-09-07T12:15:00")
UTCDateTime(2012, 9, 7, 12, 15)
>>> UTCDateTime(2012, 9, 7, 12, 15, 0)
UTCDateTime(2012, 9, 7, 12, 15)
>>> UTCDateTime(1347020100.0)
UTCDateTime(2012, 9, 7, 12, 15)

In most cases there is no need to worry about timezones, but they are supported:

>>> UTCDateTime("2012-09-07T12:15:00+02:00")
UTCDateTime(2012, 9, 7, 10, 15)

2.2. Attribute Access

>>> time = UTCDateTime("2012-09-07T12:15:00")
>>> time.year
2012
>>> time.julday
251
>>> time.timestamp
1347020100.0
>>> time.weekday
4

2.3. Handling time differences

>>> time = UTCDateTime("2012-09-07T12:15:00")
>>> print(time + 3600)
2012-09-07T13:15:00.000000Z
>>> time2 = UTCDateTime(2012, 1, 1)
>>> print(time - time2)
21644100.0

2.4. Exercises

  • Calculate the number of hours passed since your birth. Optional: Include the correct time zone. The current date and time can be obtained with
>>> UTCDateTime()  
  • Get a list of 10 UTCDateTime objects, starting yesterday at 10:00 with a spacing of 90 minutes.
  • The first session starts at 09:00 and lasts for 3 hours and 15 minutes. Assuming we want to have the coffee break 1234 seconds and 5 microseconds before it ends. At what time is the coffee break?
  • Assume you had your last cup of coffee yesterday at breakfast. How many minutes do you have to survive with that cup of coffee?