Python-Unix-Timestamp-Snippets
Python-Beispiele für die aktuelle Unix-Zeit, die Timestamp-zu-datetime-Umwandlung, die UTC-Behandlung, Millisekunden und formatierte Datumsausgabe mit der Standardbibliothek.
import time
int(time.time())import time
int(time.time() * 1000)import datetime
datetime.datetime.fromtimestamp(1700000000)import datetime
datetime.datetime.utcfromtimestamp(1700000000)
# Python 3.2+:
datetime.datetime.fromtimestamp(1700000000, tz=datetime.timezone.utc)import datetime
dt = datetime.datetime.fromtimestamp(1700000000)
dt.strftime("%Y-%m-%d %H:%M:%S")import datetime
dt = datetime.datetime(2023, 11, 15, 6, 13, 20, tzinfo=datetime.timezone.utc)
int(dt.timestamp())Grundlagen zu Python-Zeitstempeln
Pythons time.time() gibt die Sekunden seit der Unix-Epoche als Gleitkommazahl zurück. Umschließe es mit int() für ganze Unix-Sekunden oder multipliziere mit 1000, wenn du Millisekunden brauchst.
Zeitzonenbewusste datetime-Ausgabe
Verwende datetime.fromtimestamp(ts, tz=datetime.timezone.utc) für eine explizite UTC-Ausgabe. Verlasse dich nicht auf die lokale Zeitzone des Servers, wenn du Werte für Logs, APIs oder Datenbankzeilen erzeugst.
Hinweise für den Produktiveinsatz von Python
Python macht es leicht, sowohl naive als auch zeitzonenbewusste datetime-Werte zu erstellen — sei dir also bewusst, welcher davon eine Systemgrenze überschreitet. Verwende zeitzonenbewusste UTC-datetimes für APIs, geplante Jobs und Datenbankschreibvorgänge. Wandle nur für Anzeige, Berichte oder Geschäftsregeln, die ausdrücklich von einem lokalen Kalender abhängen, in eine lokale Zeitzone um.
- Verwende int(time.time()) für ganze Unix-Sekunden in Skripten und Kommandozeilen-Tools
- Verwende int(time.time() * 1000) nur, wenn das empfangende System Millisekunden erwartet
- Verwende datetime.fromtimestamp(ts, tz=timezone.utc) statt des lokalen fromtimestamp für portable Ausgabe
- Verwende .isoformat(), wenn du einen lesbaren UTC-Wert in Logs oder JSON brauchst
datetime today in Python: datetime.today() vs datetime.now()
Häufige Python-Suchen „datetime today python“, „today timestamp python“ oder „datetime now python utc“ werden vom datetime-Modul beantwortet. datetime.today() und datetime.now() sind nahezu identisch — beide geben ein naives lokales datetime zurück. Für modernen Code bevorzuge datetime.now(timezone.utc), das einen zeitzonenbewussten UTC-Wert zurückgibt, der sicher in einen Unix-Zeitstempel umgewandelt werden kann.
- datetime.today() → naives datetime in lokaler Zeitzone (kein tzinfo angehängt)
- datetime.now() → wie today(), sofern du kein tz-Argument übergibst
- datetime.now(timezone.utc) → zeitzonenbewusstes UTC-datetime (für neuen Code bevorzugt)
- datetime.now(timezone.utc).timestamp() → aktuelle Unix-Epoch-Sekunden als float
- date.today() → heutiges Datum ohne Zeitkomponente (ein date-Objekt, kein datetime)
- int(time.time()) → aktuelle Unix-Sekunden als int — die kürzeste Form
- time.time_ns() → aktuelle Epoch-Nanosekunden (Python 3.7+)
String zu datetime in Python, datetime zu String
Python-Nutzer, die nach „string to datetime python“, „py datetime to string“ oder „datetime to string“ suchen, wollen strptime/strftime oder datetime.fromisoformat(). Verwende fromisoformat() für ISO-8601-Eingaben (Python 3.7+; 3.11 unterstützt vollständiges ISO 8601 inklusive UTC-Versatz).
- String zu datetime python: datetime.fromisoformat('2024-03-15T14:30:00+00:00') — bevorzugt für ISO 8601
- String zu datetime python (eigenes Format): datetime.strptime('2024-03-15 14:30:00', '%Y-%m-%d %H:%M:%S')
- Py datetime to string / datetime to string: dt.isoformat() gibt '2024-03-15T14:30:00+00:00' zurück
- Py datetime to string (eigenes Format): dt.strftime('%Y-%m-%d %H:%M:%S') gibt '2024-03-15 14:30:00' zurück
- ISO-8601-Round-Trip: datetime.fromisoformat(s).isoformat() — erzeugt denselben String zurück
- Für Unix-Zeitstempel: dt.timestamp() (Sekunden als float); int(dt.timestamp()) für ganze Sekunden
- Python convert string to date / convert string to date — datetime.fromisoformat(s) für ISO 8601; datetime.strptime(s, fmt) für eigene Formate
- Python-Ausgabe nur als Datum: date.fromisoformat('2024-03-15') gibt ein date-Objekt zurück (ohne Zeit)
FAQ
- Gibt time.time() eine Ganzzahl zurück?
- Nein. Es gibt Sekunden als Fließkommawert zurück. Verpacke es mit int() für ganze Unix-Sekunden oder multipliziere vor dem Runden, wenn du Millisekunden brauchst.
- Sollten datetime-Werte naiv oder zeitzonenbewusst sein?
- Verwende zeitzonenbewusste UTC-datetime-Werte für APIs, Datenbanken und Logs. Naive datetime-Werte vermeidet man an Systemgrenzen besser, weil ihre Zeitzonenbedeutung implizit ist.