Slides Thema 4
Datum und Zeit
⚡Anwesenheit bestätigen
📖 Kapitel 6 Datum und Zeit
Lernziele
Ich kann ...
- Datum und Uhrzeit in einer Variable speichern.
- erklären wie der Computer die Zeit speichert.
- Datum und Uhrzeit in einem bestimmten Format ausgeben.
- Zeitdifferenzen in Stunde, Tagen und Jahren berechnen.
Timestamp
🤔 Wie speichert bzw. weiss der Computer die aktuelle Uhrzeit?
🙋 https://www.unixtimestamp.com/
IDE vorbereiten
🎬 Führen Sie diese Aktionen aus:
- Neuer Ordner
Thema4erstellen - Neue Datei
Datum und Zeit.pyerstellen
Aktuelles Datum und Uhrzeit
🎬 Das aktuelle Datum und Uhrzeit ausgeben.
from datetime import datetime # Neue Funktionen aus der Python-Bibliothek
now = datetime.now()
print(now) # Ausgabe: YYYY-MM-DD HH:MM:SSUnix Timestamp ausgeben
🎬 Anzahl Sekunden seit 01.01.1970 ausgeben.
print(now.timestamp())ℹ️ Im Jahr 2038 haben 32-Bit Computer ein Problem.
Jahr 2038
Wann haben 32-Bit Computer ein Problem?
from datetime import datetime
sekunden = int(datetime.now().timestamp())
sekunden_binär = bin(sekunden)
anzahl_bits = len(str(sekunden_binär))-2 # Ist 31
print(f'Maximales Datum: {2**anzahl_bits}')Output eingeben unter: https://www.unixtimestamp.com/
ℹ️ Mehr dazu https://de.wikipedia.org/wiki/Unixzeit#Jahr-2038-Problem.
Einzelne Zeitkomponten ausgeben
🎬 Jahr oder Monat ausgeben.
print(now.year)
print(now.month)Datum und Zeit formatieren
🎬 Datum und Zeit können formatiert werden.
print(now.isoformat())
print(now.strftime('%d.%m.%Y %H:%M'))ℹ️ Dateinamen am besten mit ISO-Format bennen. Dann stimmt die Sortierung.
Eigenes Datumsformat
Liste der Platzhalter: https://docs.python.org/3/library/time.html#time.strftime
🎬 Erstellen Sie eine eigene Formatierung.
print(now.strftime('%A, %d. %B %Y'))Datum und Zeit lokalisieren
🎬 Ausgabe in der lokalen Sprache.
import locale
locale.setlocale(locale.LC_ALL, 'de_DE.utf8') # Linux
locale.setlocale(locale.LC_ALL, 'de_DE.UTF-8') # macOS
locale.setlocale(locale.LC_ALL, 'german') # Windows
from datetime import datetime
print(datetime.now.strftime('%A, %d. %B %Y'))Datum aus String lesen
🎬 Bei der Eingabe eines Datum ist das Format entscheidend.
from datetime import datetime
s = '2018-08-01 18:47'
dt = datetime.strptime(s, '%Y-%m-%d %H:%M')
print(dt)Datum ohne Zeit
Wir haben keine Zeit.
from datetime import date
print(date.today())ℹ️ Wir importieren date und verwendent today.
Zeit ohne Datum
Wir haben kein Datum.
from datetime import datetime
print(datetime.now().time())Mit Zeiten rechnen
🎬 Mit timedelta können Sie Zeit dazu rechnen.
from datetime import datetime, timedelta
today = datetime.now()
week = timedelta(weeks=1)
print(today)
print(week)
print(today + week)Zeitdifferenz berechnen
🎬 Verwendet man today() kann die Differenz in Tagen berechnen.
from datetime import date, timedelta
today = date.today()
weihnachten = date(today.year, 12, 24)
warten = weihnachten - today
print('Noch', warten.days, 'Tage bis Weihnachten.')Aufgaben 1
Lösen Sie die ersten zwei Aufgaben 4.1 und 4.2.
⚡Aufteilung in Gruppen/Breakout-Rooms ⏱️ 10 Minuten
Zeitzonen
Wir leben in verschiedenen Zeitzonen.

Datum UTC
🎬 Wir geben das Datum in der Zeitzone Coordinated Universal Time (UTC) aus.
from datetime import datetime
import pytz
utc = datetime.now(pytz.utc)
print(utc)ℹ️ Wenn pytz in Bibliothek nicht vorhanden ist, kann man pip install pytz auf der Kommandozeile ausführen.
Datum bestimmte Zeitzone
🎬 Wir können ein Datum einer bestimmten Zeitzone zuordnen.
berlin = pytz.timezone('Europe/Berlin')
berlintime = berlin.localize(datetime.now())
print(berlintime)Laufzeit von Code messen
Wie lange braucht der Computer für eine Berechnung?
🎬 Führen Sie dieses Programm aus.
import time, math
start = time.process_time()
# Sinnlos Zeit totschlagen
for i in range(1, 1000000):
x=math.sin(i)
end = time.process_time()
print(end - start, 'Sekunden')ℹ️ Mit import math erhalten Sie Zugriff auf mathematische Funktionen.
Laufzeit der Programmausführung messen
Wie lange wird das Programm ausgeführt?
🎬 Führen Sie dieses Programm aus.
from datetime import datetime
start = int(datetime.now().timestamp())
s = input()
end = int(datetime.now().timestamp())
print(end - start, 'Sekunden')Aufgaben 2
Lösen Sie die restlichen Aufgaben.
⚡Aufteilung in Gruppen/Breakout-Rooms ⏱️ 10 Minuten
Review
🎯 Wurden die Lernziele erreicht?
⚡ Feedback zu den Zielen einholen.