De datetime module bevat functies die je berekeningen laten uitvoeren met datum en tijd. De module bevat een aantal classes die daarbij helpen, waarvan de meest belangrijke zijn: datetime, timedelta, date, en time. datetime bevat attributen year (jaar), month (maand), day (dag), hour (uur), minute (minuut), second (seconde), microsecond (duizendste seconde), en tzinfo (tijdzone). date en time bevatten een deelverzameling van deze attributen. Objecten die instanties zijn van deze classes zijn onveranderbaar.

Ik beperk mij hier tot het bespreken van datetime en timedelta, maar er bestaan equivalente functies en methodes voor de andere classes.

datetime objecten bevatten een datum en een tijd. Sommige van de methodes in datetime objecten zijn:

from datetime import datetime

print( datetime.now() )

Als je datetime objecten afdrukt krijg je een specifiek formaat als uitvoer. Als je dit formaat wilt wijzigen (inclusief het afdrukken van de naam van de dag in de week) dan kun je in de datetime module functies vinden die dat mogelijk maken. Zie de Python handleiding voor meer informatie.

Om met datetime objecten te rekenen, heb je timedelta nodig. Een timedelta object specificeert het verschil tussen twee datetime objecten. Een timedelta object bevat days (dagen), seconds (seconden), en microseconds (duizendste seconden). Je kunt ook andere attributen in een timedelta object vinden, die tijdverschil op andere manieren uitdrukken, maar de enige drie die het opslaat zijn de drie die ik hier noem; andere attributen worden uit deze drie berekend.

Je kunt allerlei berekeningen uitvoeren met timedelta objecten, maar de meest nuttige behandelen het verschil tussen twee datetime objecten. Je kunt dus een timedelta object optellen bij een datetime object om een nieuw datetime object als uitkomst te krijgen, of je kunt twee datetime objecten van elkaar aftrekken om het verschil te krijgen als een timedelta object.

from datetime import datetime, timedelta

ditjaar = datetime.now().year
xmasditjaar = datetime( ditjaar, 12, 25, 23, 59, 59 )
dezedag = datetime.now()
dagen = xmasditjaar - dezedag

if dagen.days < 0:
    print( "Kerst komt volgend jaar weer." )
elif dagen.days == 0:
    print( "Het is Kerst!" )
else:
    print( "Slechts", dagen.days, "dagen tot Kerst!" )