So formatieren Sie Daten in Python

Einleitung

Python verfügt über eine Vielzahl nützlicher Objekte, die sofort verwendet werden können. Beispiele für solche Objekte sind Datumsobjekte. Aufgrund der Komplexität von Datums- und Uhrzeitangaben ist es schwierig, Datumstypen von Grund auf zu manipulieren. Allerdings machen es Python-Datumsobjekte extrem einfach, Datumsangaben in die gewünschten String-Formate zu konvertieren.

Die Datumsformatierung ist eine häufige Aufgabe, mit der Sie als Programmierer konfrontiert werden, und die ordnungsgemäße Kommunikation von Datumsangaben an Endbenutzer, sofern Ihre Anwendung sie verfügbar macht, ist ein wichtiger Teil von UX.

In verschiedenen Regionen auf der Welt werden Datums- und Uhrzeitangaben auf unterschiedliche Weise dargestellt. Daher besteht Ihr Ziel als Programmierer darin, die Datumswerte so darzustellen, dass sie für die Benutzer lesbar sind.

Beispielsweise müssen Sie möglicherweise einen Datumswert numerisch darstellen, etwa „02“. Auf der anderen Seite müssen Sie möglicherweise denselben Datumswert in einem längeren Textformat wie „23. Februar 2023“ schreiben. In einem anderen Szenario möchten Sie möglicherweise den Monat im Zeichenfolgenformat aus einem numerisch formatierten Datumswert extrahieren.

In diesem Artikel werden wir verschiedene Arten von Datumsobjekten und ihre Funktionen untersuchen.

Das datetime-Modul

Pythons datetime Das Modul enthält Methoden, die zum Arbeiten mit Datums- und Uhrzeitwerten verwendet werden können. Um dieses Modul zu verwenden, importieren wir es zunächst über import Aussage wie folgt:

import datetime

Wir können Zeitwerte mit dem darstellen time Klasse. Die Attribute für die time Die Klasse umfasst Stunde, Minute, Sekunde und Mikrosekunde.

Hinweis: Die Argumente dafür time Klasse sind optional. Wenn Sie jedoch kein Argument angeben, erhalten Sie eine Zeit von 0 zurück, was wahrscheinlich nicht das ist, was Sie die meiste Zeit benötigen.

Sie können beispielsweise ein Zeitobjekt mit einem Wert von 1 Stunde, 10 Minuten, 20 Sekunden und 13 Mikrosekunden initialisieren, indem Sie Folgendes verwenden:

t = datetime.time(1, 10, 20, 13)

Um die Uhrzeit zu sehen, verwenden wir die print Funktion:

print(t)

Um Felder wie Stunde, Minute, Sekunde oder Mikrosekunde zu extrahieren, können Sie auf jedes Feld zugreifen:

print('hour:', t.hour)

Die Minuten, Sekunden und Mikrosekunden für die oben genannte Zeit können wie folgt abgerufen werden:

print('Minutes:', t.minute) 
print('Seconds:', t.second) 
print('Microsecond:', t.microsecond) 

Die Werte für das Kalenderdatum können über dargestellt werden date Klasse. Die Instanzen verfügen über Attribute für Jahr, Monat und Tag.

Lassen Sie uns anrufen today() Methode, um das heutige Datum anzuzeigen:

import datetime

today = datetime.date.today()
print(today) 

Der Code gibt das Datum für heute zurück, daher hängt die angezeigte Ausgabe von dem Tag ab, an dem Sie das obige Skript ausführen.

Rufen wir nun das an ctime Methode zum Drucken des Datums in einem anderen Format:

print('ctime:', today.ctime())

Das ctime Die Methode verwendet ein längeres Datums-/Uhrzeitformat als die Beispiele, die wir zuvor gesehen haben. Diese Methode wird hauptsächlich zum Konvertieren der Unix-Zeit (die Anzahl der Sekunden seit dem 1. Januar 1970) in ein String-Format verwendet.

Und so können wir das Jahr, den Monat und den Tag mit anzeigen date Klasse:

print('Year:', today.year)
print('Month:', today.month)
print('Day :', today.day)

Das führt zu:

Year: 2022
Month: 9
Day : 15

Konvertieren von Datumsangaben in Zeichenfolgen mit strftime ()

Nachdem Sie nun wissen, wie Sie Datums- und Uhrzeitobjekte erstellen, erfahren Sie jetzt, wie Sie diese in besser lesbare Zeichenfolgen formatieren.

Um dies zu erreichen, verwenden wir die strftime() Methode. Diese Methode hilft uns, Datumsobjekte in lesbare Zeichenfolgen umzuwandeln. Es benötigt zwei Parameter, wie in der folgenden Syntax gezeigt:

time.strftime(format, t)

Der erste Parameter ist die Formatzeichenfolge, während der zweite Parameter die zu formatierende Zeit ist, die optional ist.

Diese Methode kann auch auf a angewendet werden datetime Objekt direkt, wie im folgenden Beispiel gezeigt:

import datetime

x = datetime.datetime(2022, 9, 15)
print(x.strftime("%b %d %Y %H:%M:%S"))

Sehen Sie sich unseren praxisnahen, praktischen Leitfaden zum Erlernen von Git an, mit Best Practices, branchenweit akzeptierten Standards und einem mitgelieferten Spickzettel. Hören Sie auf, Git-Befehle zu googeln und tatsächlich in Verbindung, um es!

Zur Formatierung des Datums haben wir folgende Zeichenfolgen verwendet:

  • %b: Gibt die ersten drei Zeichen des Monatsnamens zurück. In unserem Beispiel wurde „Sep“ zurückgegeben.
  • %d: Gibt den Tag des Monats von 1 bis 31 zurück. In unserem Beispiel wurde „15“ zurückgegeben.
  • %Y: Gibt das Jahr im vierstelligen Format zurück. In unserem Beispiel wurde „2022“ zurückgegeben.
  • %H: Gibt die Stunde zurück. In unserem Beispiel wurde „00“ zurückgegeben.
  • %M: Gibt die Minute von 00 bis 59 zurück. In unserem Beispiel wurde „00“ zurückgegeben.
  • %S: Gibt die Sekunde von 00 bis 59 zurück. In unserem Beispiel wurde „00“ zurückgegeben.

Wir haben keine Zeit verstrichen, daher sind die Werte für die Zeit alle „00“. Das folgende Beispiel zeigt, wie auch die Uhrzeit formatiert werden kann:

import datetime

x = datetime.datetime(2022, 9, 15, 12, 45, 35)
print(x.strftime("%b %d %Y %H:%M:%S"))

Die vollständige Liste der Zeichencodes

Abgesehen von den oben angegebenen Zeichenfolgen ist die strftime Die Methode benötigt mehrere andere Anweisungen zum Formatieren von Datumswerten:

  • %a: Gibt die ersten drei Zeichen des Wochentags zurück, z. B. Mi.
  • %A: Gibt den vollständigen Namen des Wochentags zurück, z. B. Mittwoch.
  • %B: Gibt den vollständigen Namen des Monats zurück, z. B. September.
  • %w: Gibt den Wochentag als Zahl von 0 bis 6 zurück, wobei Sonntag 0 ist.
  • %m: Gibt den Monat als Zahl von 01 bis 12 zurück.
  • %p: Gibt AM/PM für die Uhrzeit zurück.
  • %y: Gibt das Jahr im zweistelligen Format zurück, also ohne das Jahrhundert. Zum Beispiel „18“ statt „2018“.
  • %f: Gibt Mikrosekunden von 000000 bis 999999 zurück.
  • %Z: Gibt die Zeitzone zurück.
  • %z: Gibt den UTC-Offset zurück.
  • %j: Gibt die Nummer des Tages im Jahr zurück, von 001 bis 366.
  • %W: Gibt die Wochennummer des Jahres von 00 bis 53 zurück, wobei Montag als erster Tag der Woche gezählt wird.
  • %U: Gibt die Wochennummer des Jahres von 00 bis 53 zurück, wobei der Sonntag als erster Tag jeder Woche gezählt wird.
  • %c: Gibt die lokale Version von Datum und Uhrzeit zurück.
  • %x: Gibt die lokale Version des Datums zurück.
  • %X: Gibt die lokale Version der Zeit zurück.

Betrachten Sie das folgende Beispiel:

import datetime

x = datetime.datetime(2022, 9, 15)
print(x.strftime('%b/%d/%Y'))

Und so erhalten Sie nur den Monat:

print(x.strftime('%B'))

Lassen Sie uns das Jahr anzeigen:

print(x.strftime('%Y'))

In diesem Beispiel haben wir den Formatcode verwendet %Y. Beachten Sie, dass die Y steht in Großbuchstaben. Schreiben Sie es nun in Kleinbuchstaben:

print(x.strftime('%y'))

Wie Sie sehen, können Sie mit diesen Formatierungscodes das Datum und die Uhrzeit in nahezu jeder gewünschten Form darstellen.

Konvertieren von Zeichenfolgen in Datumsangaben mit strptime

Das strftime() Die Methode hat uns dabei geholfen, Datumsobjekte in besser lesbare Zeichenfolgen umzuwandeln. Der strptime() Die Methode macht das Gegenteil, das heißt, sie nimmt Strings und wandelt sie in Datumsobjekte um, die Python verstehen kann.

Dies ist nützlich, wenn Sie ein Datum im String-Format erhalten und es in ein anderes Datum im String-Format konvertieren möchten. Durch die Konvertierung in ein dazwischenliegendes Datetime-Objekt erhalten Sie Zugriff auf eine analysierte Struktur, die in jedes andere Format umformatiert werden kann.

Hier ist die Syntax für die Methode:

datetime.strptime(string, format)

Das string Parameter ist der Wert im String-Format, den wir in das Datumsformat konvertieren möchten. Der format Parameter ist die Direktive, die das Format angibt, das das Datum nach der Konvertierung annehmen soll.

Nehmen wir zum Beispiel an, wir müssen die Zeichenfolge „9“ in a umwandeln datetime Objekt.

Zuerst importieren wir die datetime Modul:

from datetime import datetime

Anschließend können wir das Datum in Form einer Zeichenfolge definieren:

str = '9/15/22'

Python kann die obige Zeichenfolge erst dann als Datum/Uhrzeit verstehen, wenn wir sie in eine tatsächliche Zeichenfolge konvertieren datetime Objekt. Wir können dies erfolgreich tun, indem wir die aufrufen strptime Methode.

Führen Sie den folgenden Befehl aus, um die Zeichenfolge zu konvertieren:

date_object = datetime.strptime(str, '%m/%d/%y')

Rufen wir jetzt das an print Funktion zum Anzeigen der Zeichenfolge datetime Format:

print(date_object)

Wie Sie sehen, war die Konvertierung erfolgreich!

Sie können dieses Datumsobjekt jetzt in jedes andere Zeichenfolgenformat konvertieren.

Der Umgang mit verschiedenen Trennzeichen ist so einfach wie deren Verwendung in der Formatzeichenfolge:

from datetime import datetime

str = '9-15-22'
date_object = datetime.strptime(str, '%m-%d-%y')
print(date_object)

Zusammenfassung

In diesem Artikel haben wir untersucht, wie man Datumsangaben in Python formatiert. Wir haben gesehen, wie die datetime Das Modul in Python kann zur Manipulation von Datums- und Uhrzeitwerten verwendet werden. Das Modul enthält eine Reihe von Klassen, die zu diesem Zweck verwendet werden können. Zum Beispiel die time Die Klasse wird verwendet, um Zeitwerte darzustellen, während die date Die Klasse wird zur Darstellung von Kalenderdatumswerten verwendet.

Zeitstempel:

Mehr von Stapelmissbrauch