The datetime Library
>>> import datetime >>> dir(datetime) ['MAXYEAR', 'MINYEAR', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_divide_and_round', 'date', 'datetime', 'datetime_CAPI', 'time', 'timedelta', 'timezone', 'tzinfo']
Create DateTime
Creating a datetime object with datetime().
>>> th_start = datetime.datetime(2014, 10, 15, 9) >>> th_start datetime.datetime(2014, 10, 15, 9, 0)
Now
Create a datetime object with now() gives us the exact current time in details (804347 is in microseconds).
>>> datetime.datetime.now()
datetime.datetime(2017, 4, 17, 15, 25, 3, 804347)
>>> now = datetime.datetime.now() >>> now datetime.datetime(2017, 4, 17, 15, 25, 3, 804347)
Date or Time
Only Date
>>> now.date()
datetime.date(2017, 4, 17)
Only Time
>>> now.time()
datetime.time(16, 3, 47, 775270)
Replace
The replace() function replaces date and time values of a datetime object.
>>> treehouse_start = datetime.datetime.now() >>> treehouse_start datetime.datetime(2017, 4, 17, 15, 25, 38, 298320) >>> treehouse_start = treehouse_start.replace(hour=9, minute=0, second=0, microsecond=0) >>> treehouse_start datetime.datetime(2017, 4, 17, 9, 0)
TimeDelta
>>> time_worked = datetime.datetime.now() - treehouse_start >>> time_worked datetime.timedelta(0, 23468, 253192)
TimeDelta Attributes & Methods
>>> time_worked.days 0 >>> time_worked.seconds 23468 >>> time_worked.microseconds 253192
>>> dir(time_worked) ['__abs__', '__add__', '__bool__', '__class__', '__delattr__', '__dir__', '__div mod__', '__doc__', '__eq__', '__floordiv__', '__format__', '__ge__', '__getattri bute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt_ _', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__pos__', '__radd__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__r mod__', '__rmul__', '__rsub__', '__rtruediv__', '__setattr__', '__sizeof__', '__ str__', '__sub__', '__subclasshook__', '__truediv__', 'days', 'max', 'microsecon ds', 'min', 'resolution', 'seconds', 'total_seconds']
Practical Example
Calculating the number of hours spent working.
>>> time_worked datetime.timedelta(0, 23468, 253192) >>> >>> time_worked.seconds/3600 6.518888888888889 >>> hours_worked = round(time_worked.seconds/3600) >>> hours_worked 7