Pythons strftime() meistern: Daten und Zeiten in lesbare Strings konvertieren
Python strftime()
In diesem Artikel lernen Sie, wie Sie date-, time- und datetime-Objekte mithilfe von Beispielen in ihre äquivalenten String-Repräsentationen konvertieren.
Video: Daten und Zeiten in Python
Die Methode strftime() gibt einen String zurück, der Datum und Zeit mithilfe eines date-, time- oder datetime-Objekts darstellt.
Beispiel 1: datetime in String mit strftime() konvertieren
Das folgende Programm konvertiert ein datetime-Objekt mit dem aktuellen Datum und der aktuellen Uhrzeit in verschiedene String-Formate.
from datetime import datetime
now = datetime.now() # aktuelles Datum und Uhrzeit
year = now.strftime("%Y")
print("Jahr:", year)
month = now.strftime("%m")
print("Monat:", month)
day = now.strftime("%d")
print("Tag:", day)
time = now.strftime("%H:%M:%S")
print("Uhrzeit:", time)
date_time = now.strftime("%m/%d/%Y, %H:%M:%S")
print("Datum und Uhrzeit:", date_time)
Bei der Ausgabe erhalten Sie eine Ausgabe ähnlich dieser:
Jahr: 2018 Monat: 12 Tag: 24 Uhrzeit: 04:59:31 Datum und Uhrzeit: 12/24/2018, 04:59:31
Hier sind year, day, time und date_time Strings, während now ein datetime-Objekt ist.
Wie funktioniert strftime()?
Im obigen Programm sind %Y, %m, %d usw. Formatcodes. Die Methode strftime() nimmt einen oder mehrere Formatcodes als Argument entgegen und gibt einen formatierten String basierend darauf zurück.
- Wir importieren die
datetime-Klasse aus demdatetime-Modul. Dies ist notwendig, da Objekte derdatetime-Klasse auf diestrftime()-Methode zugreifen können. - Das
datetime-Objekt mit dem aktuellen Datum und der aktuellen Uhrzeit wird in der Variablen now gespeichert. - Die
strftime()-Methode kann verwendet werden, um formatierte Strings zu erstellen. - Der an
strftime()übergebene String kann mehr als einen Formatcode enthalten.
Beispiel 2: String aus einem Zeitstempel erstellen
from datetime import datetime
timestamp = 1528797322
date_time = datetime.fromtimestamp(timestamp)
print("Datum-Uhrzeit-Objekt:", date_time)
d = date_time.strftime("%m/%d/%Y, %H:%M:%S")
print("Ausgabe 2:", d)
d = date_time.strftime("%d %b, %Y")
print("Ausgabe 3:", d)
d = date_time.strftime("%d %B, %Y")
print("Ausgabe 4:", d)
d = date_time.strftime("%I%p")
print("Ausgabe 5:", d)
Bei der Ausgabe erhalten Sie:
Datum-Uhrzeit-Objekt: 2018-06-12 09:55:22 Ausgabe 2: 06/12/2018, 09:55:22 Ausgabe 3: 12 Jun, 2018 Ausgabe 4: 12 June, 2018 Ausgabe 5: 09AM
Liste der Formatcodes
Die folgende Tabelle zeigt alle Codes, die Sie an die strftime()-Methode übergeben können.
| Direktive | Bedeutung | Beispiel |
|---|---|---|
%a | Abgekürzter Wochentagsname. | So, Mo, ... |
%A | Vollständiger Wochentagsname. | Sonntag, Montag, ... |
%w | Wochentag als Dezimalzahl. | 0, 1, ..., 6 |
%d | Tag des Monats als null-gefüllte Dezimalzahl. | 01, 02, ..., 31 |
%-d | Tag des Monats als Dezimalzahl. | 1, 2, ..., 30 |
%b | Abgekürzter Monatsname. | Jan, Feb, ..., Dez |
%B | Vollständiger Monatsname. | Januar, Februar, ... |
%m | Monat als null-gefüllte Dezimalzahl. | 01, 02, ..., 12 |
%-m | Monat als Dezimalzahl. | 1, 2, ..., 12 |
%y | Jahr ohne Jahrhundert als null-gefüllte Dezimalzahl. | 00, 01, ..., 99 |
%-y | Jahr ohne Jahrhundert als Dezimalzahl. | 0, 1, ..., 99 |
%Y | Jahr mit Jahrhundert als Dezimalzahl. | 2013, 2019 usw. |
%H | Stunde (24-Stunden-Uhr) als null-gefüllte Dezimalzahl. | 00, 01, ..., 23 |
%-H | Stunde (24-Stunden-Uhr) als Dezimalzahl. | 0, 1, ..., 23 |
%I | Stunde (12-Stunden-Uhr) als null-gefüllte Dezimalzahl. | 01, 02, ..., 12 |
%-I | Stunde (12-Stunden-Uhr) als Dezimalzahl. | 1, 2, ... 12 |
%p | Lokale AM- oder PM-Bezeichnung. | AM, PM |
%M | Minute als null-gefüllte Dezimalzahl. | 00, 01, ..., 59 |
%-M | Minute als Dezimalzahl. | 0, 1, ..., 59 |
%S | Sekunde als null-gefüllte Dezimalzahl. | 00, 01, ..., 59 |
%-S | Sekunde als Dezimalzahl. | 0, 1, ..., 59 |
%f | Mikrosekunde als Dezimalzahl, links null-gefüllt. | 000000 - 999999 |
%z | UTC-Offset in der Form +HHMM oder -HHMM. | |
%Z | Zeitzonenname. | |
%j | Tag des Jahres als null-gefüllte Dezimalzahl. | 001, 002, ..., 366 |
%-j | Tag des Jahres als Dezimalzahl. | 1, 2, ..., 366 |
%U | Wochennummer des Jahres (Sonntag als erster Wochentag). | 00, 01, ..., 53 |
%W | Wochennummer des Jahres (Montag als erster Wochentag). | 00, 01, ..., 53 |
%c | Lokale Datums- und Uhrzeitdarstellung. | Mon Sep 30 07:06:05 2013 |
%x | Lokale Datumsdarstellung. | 09/30/13 |
%X | Lokale Uhrzeitdarstellung. | 07:06:05 |
%% | Ein wörtliches '%'-Zeichen. | % |
Beispiel 3: Lokale Datums- und Uhrzeitdarstellung
from datetime import datetime
timestamp = 1528797322
date_time = datetime.fromtimestamp(timestamp)
d = date_time.strftime("%c")
print("Ausgabe 1:", d)
d = date_time.strftime("%x")
print("Ausgabe 2:", d)
d = date_time.strftime("%X")
print("Ausgabe 3:", d)
Bei der Ausgabe erhalten Sie:
Ausgabe 1: Tue Jun 12 09:55:22 2018 Ausgabe 2: 06/12/18 Ausgabe 3: 09:55:22
Die Formatcodes %c, %x und %X werden für die lokale Datums- und Uhrzeitdarstellung verwendet.
Wir empfehlen Ihnen auch, strptime() zu prüfen. Die strptime()-Methode erstellt ein datetime-Objekt aus einem String.
Python
- Python-Schlüsselwörter & Bezeichner: Reservierte Wörter & Benennungskonventionen meistern
- Python-Datentypen meistern: Praxisleitfaden
- Python-Operatoren meistern: Umfassender Leitfaden
- 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
- Python Reguläre Ausdrücke (re Modul) – Ein praktischer Leitfaden
- Python datetime meistern: Praktischer Leitfaden zu Datumsangaben, Zeiten und Zeitzonen
- Pythons time-Modul meistern: Funktionen, Structs und praktische Beispiele