Python datetime meistern: Praktischer Leitfaden zu Datumsangaben, Zeiten und Zeitzonen
Python datetime meistern
Entdecken Sie, wie Sie in Python mit praktischen Beispielen und klaren Erklärungen mit Datumsangaben und Zeiten arbeiten.
Video: Python datetime – Mit Datumsangaben und Zeiten arbeiten
Pythons datetime-Modul bietet mächtige Werkzeuge zur Manipulation von Datumsangaben und Zeiten. Im Folgenden gehen wir durch gängige Aufgaben, vom Abrufen des aktuellen Moments bis hin zu Formatierung und Zeitzonen-Handling.
Beispiel 1: Aktuelles Datum und Uhrzeit abrufen
import datetime
datetime_objekt = datetime.datetime.now()
print(datetime_objekt)
Die Ausgabe sieht aus wie:
2018-12-19 09:26:03.478039
Hier importieren wir das Modul mit import datetime. Die datetime-Klasse enthält eine now()-Methode, die das lokale Datum und die Uhrzeit zurückgibt.
Beispiel 2: Aktuelles Datum abrufen
import datetime
datum_objekt = datetime.date.today()
print(datum_objekt)
Die Ausgabe wird sein:
2018-12-19
Wir verwenden today() aus der date-Klasse, um das aktuelle Kalenderdatum zu erhalten.
Das datetime-Modul erkunden
Führen Sie dir(datetime) aus, um alle Attribute und Klassen aufzulisten:
import datetime
print(dir(datetime))
Ausgabe:
['MAXYEAR', 'MINYEAR', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_divide_and_round', 'date', 'datetime', 'datetime_CAPI', 'time', 'timedelta', 'timezone', 'tzinfo']
Wichtige Klassen sind date, time, datetime und timedelta.
datetime.date Klasse
Die date-Klasse repräsentiert ein Kalenderdatum (Jahr, Monat, Tag).
Beispiel 3: Date-Objekt erstellen
import datetime
d = datetime.date(2019, 4, 13)
print(d)
Ergebnis:
2019-04-13
Hier ist date() ein Konstruktor, der year, month und day als Argumente akzeptiert.
Die Variable a ist eine date-Instanz.
Nur die date-Klasse importieren:
from datetime import date
a = date(2019, 4, 13)
print(a)
Beispiel 4: Aktuelles Datum
Verwenden Sie die today()-Klassenmethode:
from datetime import date
heute = date.today()
print("Aktuelles Datum =", heute)
Beispiel 5: Aus Timestamp
Ein Unix-Timestamp zählt Sekunden seit dem 1970-01-01 UTC. Konvertieren Sie ihn mit fromtimestamp():
from datetime import date
timestamp = date.fromtimestamp(1326244364)
print("Datum =", timestamp)
Ausgabe:
Datum = 2012-01-11
Beispiel 6: Auf Jahr, Monat, Tag zugreifen
from datetime import date
heute = date.today()
print("Aktuelles Jahr:", heute.year)
print("Aktueller Monat:", heute.month)
print("Aktueller Tag:", heute.day)
datetime.time
Die time-Klasse speichert eine Uhrzeit ohne Datum.
Beispiel 7: Time-Objekte erstellen
from datetime import time
a = time()
print("a =", a)
b = time(11, 34, 56)
print("b =", b)
c = time(hour=11, minute=34, second=56)
print("c =", c)
d = time(11, 34, 56, 234566)
print("d =", d)
Ergebnis:
a = 00:00:00 b = 11:34:56 c = 11:34:56 d = 11:34:56.234566
Beispiel 8: Zeitkomponenten inspizieren
from datetime import time
a = time(11, 34, 56)
print("Stunde =", a.hour)
print("Minute =", a.minute)
print("Sekunde =", a.second)
print("Mikrosekunde =", a.microsecond)
Ausgabe:
Stunde = 11 Minute = 34 Sekunde = 56 Mikrosekunde = 0
datetime.datetime
Die datetime-Klasse kombiniert sowohl Datums- als auch Zeitinformationen.
Beispiel 9: Datetime-Objekt erstellen
from datetime import datetime
# Jahr, Monat, Tag
A = datetime(2018, 11, 28)
print(A)
# Vollständige Spezifikation
B = datetime(2017, 11, 28, 23, 55, 59, 342380)
print(B)
Ergebnis:
2018-11-28 00:00:00 2017-11-28 23:55:59.342380
Jahr, Monat und Tag sind obligatorisch; Stunde, Minute, Sekunde und Mikrosekunde defaulten auf null.
Beispiel 10: Komponenten & Timestamp inspizieren
from datetime import datetime
A = datetime(2017, 11, 28, 23, 55, 59, 342380)
print("Jahr =", A.year)
print("Monat =", A.month)
print("Tag =", A.day)
print("Stunde =", A.hour)
print("Minute =", A.minute)
print("Timestamp =", A.timestamp())
Ausgabe:
Jahr = 2017 Monat = 11 Tag = 28 Stunde = 23 Minute = 55 Timestamp = 1511913359.34238
datetime.timedelta
Ein timedelta-Objekt repräsentiert eine Dauer zwischen zwei Datumsangaben oder Zeiten.
Beispiel 11: Differenz zwischen Datumsangaben & Zeiten
from datetime import datetime, date
T1 = date(year=2018, month=7, day=12)
T2 = date(year=2017, month=12, day=23)
T3 = T1 - T2
print("T3 =", T3)
T4 = datetime(year=2018, month=7, day=12, hour=7, minute=9, second=33)
T5 = datetime(year=2019, month=6, day=10, hour=5, minute=55, second=13)
T6 = T4 - T5
print("T6 =", T6)
print("Typ von T3 =", type(T3))
print("Typ von T6 =", type(T6))
Ausgabe:
T3 = 201 days, 0:00:00 T6 = -333 days, 1:14:20 Typ von T3 = <class 'datetime.timedelta'> Typ von T6 = <class 'datetime.timedelta'>
Beispiel 12: Timedelta-Objekte subtrahieren
from datetime import timedelta
T1 = timedelta(weeks=2, days=5, hours=1, seconds=33)
T2 = timedelta(days=4, hours=11, minutes=4, seconds=54)
T3 = T1 - T2
print("T3 =", T3)
Ausgabe:
T3 = 14 days, 13:55:39
Beispiel 13: Negatives Timedelta
from datetime import timedelta
T1 = timedelta(seconds=33)
T2 = timedelta(seconds=54)
T3 = T1 - T2
print("T3 =", T3)
print("abs(T3) =", abs(T3))
Ausgabe:
T3 = -1 day, 23:59:39 abs(T3) = 0:00:21
Beispiel 14: Gesamte Sekunden in einem Timedelta
from datetime import timedelta
T = timedelta(days=5, hours=1, seconds=33, microseconds=233423)
print("gesamte sekunden =", T.total_seconds())
Ausgabe:
gesamte sekunden = 435633.233423
Sie können Datumsangaben addieren, ein timedelta mit einer Zahl multiplizieren und durch einen Float dividieren, um Dauern zu skalieren.
Datumsformatierung und Parsing
Verschiedene Locales verwenden unterschiedliche Datumsformate (z. B. mm/dd/yyyy in den USA vs dd/mm/yyyy in UK). Pythons strftime() und strptime() Methoden helfen bei der Konvertierung zwischen datetime-Objekten und formatierten Strings.
Python strftime() – datetime zu String
from datetime import datetime
now = datetime.now()
# Stunde:Minute:Sekunde
T = now.strftime("%H:%M:%S")
print("Uhrzeit:", T)
# US-Format
S1 = now.strftime("%m/%d/%Y, %H:%M:%S")
print("S1:", S1)
# UK-Format
S2 = now.strftime("%d/%m/%Y, %H:%M:%S")
print("S2:", S2)
Typische Ausgabe:
Uhrzeit: 04:34:52 S1: 12/26/2018, 04:34:52 S2: 26/12/2018, 04:34:52
Gängige Formatcodes: %Y Jahr, %m Monat, %d Tag, %H Stunde, %M Minute, %S Sekunde.
Python strptime() – String zu datetime
from datetime import datetime
datum_string = "21 June, 2018"
print("datum_string =", datum_string)
datum_objekt = datetime.strptime(datum_string, "%d %B, %Y")
print("datum_objekt =", datum_objekt)
Ausgabe:
datum_string = 21 June, 2018 datum_objekt = 2018-06-21 00:00:00
Hier ist %d Tag, %B voller Monatsname und %Y Jahr.
Zeitzonen-Bewusstsein
Für Anwendungen, die Zeiten in verschiedenen Zonen anzeigen oder berechnen müssen, vermeiden Sie manuelle Berechnungen und nutzen Sie die pytz-Bibliothek.
from datetime import datetime
import pytz
lokal = datetime.now()
print("Lokal:", lokal.strftime("%m/%d/%Y, %H:%M:%S"))
tz_NY = pytz.timezone('America/New_York')
dt_NY = datetime.now(tz_NY)
print("NY:", dt_NY.strftime("%m/%d/%Y, %H:%M:%S"))
tz_London = pytz.timezone('Europe/London')
dt_London = datetime.now(tz_London)
print("London:", dt_London.strftime("%m/%d/%Y, %H:%M:%S"))
Beispielausgabe:
Lokal: 12/20/2018, 13:10:44 NY: 12/20/2018, 08:10:44 London: 12/20/2018, 13:10:44
Die datetime_NY und datetime_London Objekte enthalten zeitzonen-bewusste Timestamps.
Python
- Python-Datentypen meistern: Praxisleitfaden
- Python-Operatoren meistern: Umfassender Leitfaden
- Python pass-Statement meistern: Praxisleitfaden
- Python-Funktionsargumente meistern: Positional, Keyword & Default-Parameter
- Python-Dictionaries meistern: Erstellung, Manipulation und fortgeschrittene Techniken
- Python Iteratoren meistern: Funktionsweise und Erstellung eigener Iteratoren
- Python Closures erklärt: Wie verschachtelte Funktionen Variablen erfassen
- Aktuelles Datum und Uhrzeit in Python abrufen: Praktischer Leitfaden
- Python: Aktuelle Uhrzeit und Zeitzonendaten einfach abrufen
- Pythons time.sleep() meistern: Best Practices, Multithreading und Praxisbeispiele