Python - Datum und Uhrzeit

Hallo dort, zukünftige Python-Zauberer! Heute werden wir eine spannende Reise durch die Welt der Daten und Zeiten in Python antreten. Als euer freundlicher Nachbar und Computerlehrer bin ich begeistert, euch auf dieser Abenteuerreise zu führen. Also, packt eure virtuellen Zauberstäbe (Tastaturen) und lasst uns einsteigen!

Python - Date & Time

Was sind Tick-Intervalle?

Bevor wir mit Daten und Zeiten beginnen, verstehen wir erst einmal ein grundlegendes Konzept: Tick-Intervalle. In der Welt der Computer wird die Zeit oft in Ticks gemessen. Aber was genau ist ein Tick?

Ein Tick ist wie das Herzschlag deines Computers. Es ist die kleinste Einheit der Zeit, die der Uhrentimer deines Computers messen kann. In Python messen wir Ticks als die Anzahl der Sekunden, die seit dem 1. Januar 1970 um 00:00:00 UTC vergangen sind. Dieser Zeitpunkt wird oft als der "Epoch" bezeichnet.

Sehen wir uns an, wie wir den aktuellen Tick-Wert erhalten können:

import time

ticks = time.time()
print("Aktueller Tick-Wert:", ticks)

Wenn ihr diese Code ausführt, seht ihr eine große Zahl ausgegeben. Das ist die Anzahl der Sekunden, die seit der Epoch vergangen sind. Ziemlich cool, nicht wahr?

Was ist TimeTuple?

Nun reden wir über TimeTuple. Es ist nicht eine neue Tanzschritt (obwohl es so klingt!), sondern vielmehr eine Art, wie Python Zeit darstellt.

Ein TimeTuple ist ein Tuple, das 9 Elemente enthält, die verschiedene Aspekte der Zeit darstellen:

Index Attribut Werte
0 Jahr (z.B. 2023)
1 Monat 1-12
2 Tag 1-31
3 Stunde 0-23
4 Minute 0-59
5 Sekunde 0-61 (60 und 61 für Schaltsekunden)
6 Wochentag 0-6 (0 ist Montag)
7 Tag des Jahres 1-366
8 DST -1, 0, 1 (Daylight Saving Time Flag)

Macht euch keine Sorgen, wenn das überwältigend erscheint. Wir werden diese Elemente während unserer Lektion verwenden, und ihr werdet sie in kürzester Zeit kennenlernen!

Ermittlung der aktuellen Uhrzeit

Beginnen wir mit etwas Einfachem: der Ermittlung der aktuellen Uhrzeit. Python macht dies mit dem time-Modul unglaublich einfach:

import time

aktuelle_zeit = time.localtime()
print("Aktuelle Uhrzeit:", aktuelle_zeit)

Wenn ihr das ausführt, seht ihr einen TimeTuple ausgegeben. Jede Zahl entspricht einem Element in der Tabelle, die wir gerade gesehen haben. Wenn ihr z.B. time.struct_time(tm_year=2023, tm_mon=6, tm_mday=15, tm_hour=14, tm_min=30, tm_sec=0, tm_wday=3, tm_yday=166, tm_isdst=0) seht, bedeutet das, es ist der 15. Juni 2023 um 14:30 Uhr.

Ermittlung der formatierten Uhrzeit

Während TimeTuples für Computer nützlich sind, sind sie nicht sehr benutzerfreundlich. Formatiert wir unsere Zeit auf eine Weise, die leichter zu lesen ist:

import time

formatierte_zeit = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print("Formatierte Uhrzeit:", formatierte_zeit)

Dies wird etwas wie "2023-06-15 14:30:00" ausgeben. Viel besser, nicht wahr? Die %Y, %m, %d usw. sind Formatcodes, die Python mitteilen, wie die Zeitelemente angeordnet werden sollen. Es ist wie ein Template für Python, wie ihr die Zeit darstellen möchtet.

Ermittlung des Kalenders für einen Monat

Nun steigern wir es und geben einen gesamten Kalender für einen Monat aus. Wir verwenden dafür das calendar-Modul:

import calendar

jahr = 2023
monat = 6

print(calendar.month(jahr, monat))

Dies gibt einen schön formatierten Kalender für den Juni 2023 aus. Es ist wie ein kleiner Schreibtischkalender direkt in eurem Python-Programm!

Das time-Modul

Wir haben das time-Modul bereits ein bisschen verwendet, aber lassen uns es weiter erkunden. Dieses Modul bietet verschiedene zeitbezogene Funktionen. Hier sind einige nützliche:

import time

print("Aktuelle Zeit in Sekunden seit der Epoch:", time.time())
print("Aktuelle lokale Zeit:", time.ctime())
print("Schlafe für 2 Sekunden...")
time.sleep(2)
print("Bin aufgewacht!")

Die sleep()-Funktion ist besonders nützlich, wenn ihr wollt, dass euer Programm eine Weile pausiert. Es ist wie sagen, dass ihr Code eine kleine Nickerchen macht!

Das calendar-Modul

Wir haben gesehen, wie man einen Monat ausgibt, aber das calendar-Modul kann mehr:

import calendar

print("Ist 2023 ein Schaltjahr?", calendar.isleap(2023))
print("Wie viele Schaltjahre zwischen 2000 und 2050?", calendar.leapdays(2000, 2050))
print("Welcher Wochentag ist der 15. Juni 2023?", calendar.weekday(2023, 6, 15))

Diese Funktionen helfen euch, mit Kalendern und Daten leicht zu arbeiten. Noch nicht mehr mit den Fingern zählen, um Schaltjahre zu ermitteln!

Das Python datetime-Modul

Das datetime-Modul ist wie das Schweizer Army Knife der Zeitmanipulation in Python. Es kombiniert die Funktionalität sowohl des time- als auch des calendar-Moduls und fügt sogar mehr Funktionen hinzu.

from datetime import datetime, date, time

# Aktuelles Datum und Uhrzeit
jetzt = datetime.now()
print("Aktuelles Datum und Uhrzeit:", jetzt)

# Erstellen eines spezifischen Datums
mein_geburtstag = date(1990, 5, 15)
print("Mein Geburtstag:", mein_geburtstag)

# Erstellen einer spezifischen Uhrzeit
wecker = time(7, 30, 0)
print("Wecker gestellt auf:", wecker)

Mit datetime könnt ihr Daten und Zeiten erstellen, manipulieren und formatieren mit Leichtigkeit.

Das Python date-Objekt

Das date-Objekt aus dem datetime-Modul lässt euch mit Daten (Jahr, Monat und Tag) arbeiten:

from datetime import date

heute = date.today()
print("Heutiges Datum:", heute)
print("Jahr:", heute.year)
print("Monat:", heute.month)
print("Tag:", heute.day)

Es ist wie ein intelligenter Kalender, der weiß, welcher Tag es ist und euch alles darüber erzählen kann!

Das Python time-Objekt

Ähnlich lässt das time-Objekt euch mit Zeiten (Stunde, Minute, Sekunde, Mikrosekunde) arbeiten:

from datetime import time

mittagessen = time(12, 30, 0)
print("Mittagessen:", mittagessen)
print("Stunde:", mittagessen.hour)
print("Minute:", mittagessen.minute)
print("Sekunde:", mittagessen.second)

Jetzt könnt ihr eure Coding-Pausen genau planen!

Das Python datetime-Objekt

Das datetime-Objekt kombiniert date und time, gibt euch also volle Kontrolle über beides:

from datetime import datetime

jetzt = datetime.now()
print("Aktuelles Datum und Uhrzeit:", jetzt)
print("Aktuelles Jahr:", jetzt.year)
print("Aktueller Monat:", jetzt.month)
print("Aktueller Tag:", jetzt.day)
print("Aktuelle Stunde:", jetzt.hour)
print("Aktuelle Minute:", jetzt.minute)
print("Aktuelle Sekunde:", jetzt.second)

Es ist wie ein superbetonter Armbanduhren, der alles über den aktuellen Augenblick weiß!

Das Python timedelta-Objekt

Nicht zuletzt, reden wir über timedelta. Dieses Objekt represents eine Zeitdauer und ist unglaublich nützlich für Datumsrechnung:

from datetime import datetime, timedelta

jetzt = datetime.now()
print("Aktuelles Datum und Uhrzeit:", jetzt)

# Füge 1 Tag hinzu
morgen = jetzt + timedelta(days=1)
print("Diese Zeit morgen:", morgen)

# ziehe 1 Woche ab
letzte_woche = jetzt - timedelta(weeks=1)
print("Diese Zeit letzte Woche:", letzte_woche)

Mit timedelta könnt ihr in eurem Code Zeitreisen machen! Naja, sort of. Ihr könnt leicht zukünftige und vergangene Daten berechnen, was für viele Anwendungen sehr praktisch ist.

Und da haben wir es, meine jungen Pythonisten! Wir haben die faszinierende Welt der Daten und Zeiten in Python durchquert. Denkt daran, Praxis macht den Meister, also zögert nicht, mit diesen Konzepten zu experimentieren. Bevor ihr es wischt, werdet ihr in der Lage sein, Zeit wie ein wahrer Coding-Zeitlord zu manipulieren!

Credits: Image by storyset