decocode decocode deco    

Zeit und Datum #

► Python-Dokumentation: time

Zeitangaben werden üblicherweise als Zeitstempel in der Unixzeit angegeben. Die Unixzeit zählt die Sekunden ab dem 1. Januar 1970 um 0:00 Uhr. Um Zeitstempel zu erzeugen oder in ein menschenlesbares Format umzuwandeln, stehen verschiedene Funktionen aus dem Modul time zur Verfügung. Weiterführende Funktionen sind in den Modulen datetime sowie calendar enthalten, auf die hier nicht weiter eingegangen wird.

Quelltext auswählen
1
2
3
4
import time

now = time.time()
print("Aktueller Zeitstempel:", now)

Zeit- und Datumsangaben per localtime #

► Python-Dokumentation: localtime

Über die Funktion localtime können verschiedene Zeit- und Datumsangaben eines Zeitstempels ermittelt werden. Wird die Funktion ohne Angabe eines Arguments aufgerufen, so wird der aktuelle Zeitpunkt übergeben.

Quelltext auswählen
1
2
3
4
5
6
7
8
9
10
now = time.localtime()
print("Tag:", now.tm_mday)
print("Monat:", now.tm_mon)
print("Jahr:", now.tm_year)
print("Stunde:", now.tm_hour)
print("Minute:", now.tm_min)
print("Sekunde:", now.tm_sec)
print("Wochentag:", now.tm_wday)  # Montag = 0
print("Tag des Jahres:", now.tm_yday)
print("Sommerzeit:", now.tm_isdst)  # Sommerzeit: 1; Winterzeit: 0

Zeitstempel mit mktime erzeugen #

► Python-Dokumentation: mktime

Mit der Funktion mktime() lässt sich aus einer Zeitangabe ein Zeitstempel erzeugen. Die für diese Funktion benötigten Argumente können aus folgendem Beispiel abgeleitet werden:

Quelltext auswählen
1
2
3
4
5
6
7
8
9
jahr = 2013
monat = 2
tag = 7
stunde = 18
minute = 30
sekunde = 15

timestamp = time.mktime((jahr, monat, tag, stunde, minute, sekunde, 0, 0, 0))
print(timestamp)

Zeitstempel mit strftime auswerten #

► Python-Dokumentation: strftime

Mit der Funktion strftime() lassen sich in Verbindung mit localtime() aus einem Zeitstempel weitere Zeitangaben ermitteln, die als String zurückgegeben werden. Die gewünschten Zeitangaben können über spezielle Direktiven ermittelt werden, die als %-Zeichen gefolgt von einem Buchstaben angegeben werden.

Um die Strings für Monatsnamen und Wochentagnamen in der Sprache der Benutzersystems auszugeben, kann die Spracheinstellung mit der Funktion setlocale() aus dem Modul locale eingestellt werden.

Quelltext auswählen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import time, locale
locale.setlocale(locale.LC_ALL, '')

...

datetime = time.localtime(timestamp)
print(time.strftime("Tag: %d", datetime))
print(time.strftime("Monat: %m", datetime))
print(time.strftime("Jahr: %Y", datetime))
print(time.strftime("Stunde: %H", datetime))
print(time.strftime("Minute: %M", datetime))
print(time.strftime("Sekunde: %S", datetime))

print(time.strftime("Stunde im 12-Stunden-Format: %I", datetime))
print(time.strftime("AM/PM: %p", datetime))
print(time.strftime("Kompakte Form: %c", datetime))
print(time.strftime("Datum: %x", datetime))
print(time.strftime("Zeit: %X", datetime))
print(time.strftime("Jahr mit zwei Stellen: %y", datetime))
print(time.strftime("Tag des Jahres: %j", datetime))
print(time.strftime("Wochentag Kurzform: %a", datetime))
print(time.strftime("Wochentag Langform: %A", datetime))
print(time.strftime("Tag der Woche: %w", datetime))  # Sonntag = 0
print(time.strftime("Monat Kurzform: %b", datetime))
print(time.strftime("Monat Langform: %B", datetime))
print(time.strftime("Woche des Jahres (beginnend mit Sonntag): %U", datetime))
print(time.strftime("Woche des Jahres (beginnend mit Montag): %W", datetime))
print(time.strftime("Zeitzone: %Z", datetime))