Python's datetime Module Onder de Loep: Datums, Tijden, Timedelta & Strftime Uitgelegd
Python's datetime bibliotheek biedt een robuuste set tools voor het manipuleren van datums, tijden en tijdsintervallen. Door te werken met objecten in plaats van raw strings of timestamps, kunnen ontwikkelaars nauwkeurige berekeningen en formattering met vertrouwen uitvoeren.
Belangrijkste datetime Klassen
- date – Behandelt jaar, maand en dag.
- time – Behandelt uur, minuut, seconde en microseconde, onafhankelijk van een specifieke datum.
- datetime – Combineert een datum en een tijd in een enkel object.
- timedelta – Vertegenwoordigt een duur, wat optellen of aftrekken van datums en tijden mogelijk maakt.
- tzinfo – Abstracte basisklasse voor tijdzone-ondersteuning.
Aan de Slag: Importeren en Instantiëren
Voordat je enige manipulatie doet, importeer de benodigde klassen:
from datetime import date, time, datetime, timedelta
Instantieer een date object:
vandaag = date.today() print(vandaag) # bijv., 2024-04-19
Huidige Datum en Tijd
De datetime.now() methode retourneert de huidige lokale datum en tijd:
nu = datetime.now() print(nu) # 2024-04-19 14:35:12.123456
Om alleen het tijd-component te extraheren:
huidige_tijd = nu.time() print(huidige_tijd) # 14:35:12.123456
Output Formatteren met strftime
De strftime methode converteert datetime objecten naar menselijk-leesbare strings met formaatcodes:
nu.strftime("%Y-%m-%d %H:%M:%S") # "2024-04-19 14:35:12"
Veelvoorkomende directives zijn:
%Y– Viercijferig jaar.%y– Tweecijferig jaar.%a– Afgekorte dagnaam.%A– Volledige dagnaam.%b– Afgekorte maandnaam.%B– Volledige maandnaam.%d– Dag van de maand (01-31).%H– Uur (00-23).%I– Uur (01-12).%M– Minuut (00-59).%S– Seconde (00-59).%p– AM of PM.
Voorbeelden:
# 12-uurs formaat met AM/PM
print(nu.strftime("%I:%M:%S %p"))
# 24-uurs formaat
print(nu.strftime("%H:%M"))
Werken met timedelta
Een timedelta vertegenwoordigt een tijdspanne. Het ondersteunt rekenkunde met datums en datetimes:
# Maak een timedelta van 365 dagen een_jaar = timedelta(days=365) # Een jaar vanaf vandaag toekomstige_datum = datetime.now() + een_jaar print(toekomstige_datum)
Dagen berekenen tot een evenement (bijv. Nieuwjaar):
vandaag = date.today()
nieuwjaar = date(vandaag.year, 1, 1)
if nieuwjaar < vandaag:
nieuwjaar = date(vandaag.year + 1, 1, 1)
print("Nieuwjaar is over", (nieuwjaar - vandaag).days, "dagen")
else:
print("Nieuwjaar is over", (nieuwjaar - vandaag).days, "dagen")
Alles Samenvoegen
Hieronder is een beknopt, klaar-om-te-draaien script dat de kernfeatures demonstreert:
from datetime import datetime, date, timedelta
# Huidige datum en tijd
nu = datetime.now()
print("Nu:", nu)
# Formaat-voorbeelden
print("ISO-formaat:", nu.strftime("%Y-%m-%d %H:%M:%S"))
print("12-uurs tijd:", nu.strftime("%I:%M:%S %p"))
# Timedelta-operaties
een_week = timedelta(weeks=1)
print("Eén week vanaf nu:", nu + een_week)
# Dagen tot Nieuwjaar
vandaag = date.today()
nieuwjaar = date(vandaag.year + (vandaag < date(vandaag.year, 1, 1)), 1, 1)
print("Dagen tot Nieuwjaar:", (nieuwjaar - vandaag).days)
Samenvatting
Python's datetime module voorziet ontwikkelaars van krachtige, type-veilige tools voor datum- en tijdmanipulatie:
- Gebruik
date,timeendatetimeobjecten voor duidelijke, expliciete representaties. - Benut
strftimevoor flexibele, locale-aware formattering. - Gebruik
timedeltaom rekenkunde uit te voeren en intervallen te berekenen. - Onthoud de relevante klassen te importeren voor gebruik; anders zal de interpreter fouten geven.
Deze tools zijn essentieel voor taken variërend van simpele timestamping tot complexe scheduling-logica.
Python
- Python datetime beheersen: praktische gids voor datums, tijden en tijdzones
- Huidige datum en tijd ophalen in Python: een praktische gids
- Python: Huidige tijd en tijdzonedata eenvoudig ophalen
- Python's time-module beheersen: functies, structs en praktische voorbeelden
- Python's time.sleep() onder de knie krijgen: best practices, multithreading en real-world voorbeelden
- Python print()-functie: Praktische handleiding met voorbeelden
- Python's str.count() beheersen: Karakters & substrings tellen met voorbeelden
- Python `format()` strings beheersen met duidelijke voorbeelden
- Python's String.find()-methode beheersen: Syntaxis, voorbeelden & alternatieven
- Python lambda-functies beheersen: praktische voorbeelden & best practices
- Python round()-functie uitgelegd met praktische voorbeelden