Python-Datetime
Python-Datum/Uhrzeit
In diesem Artikel lernen Sie anhand von Beispielen, Datum und Uhrzeit in Python zu manipulieren.
Video:Python datetime – Arbeiten mit Datums- und Zeitangaben
Python hat ein Modul namens datetime mit Datum und Uhrzeit arbeiten. Lassen Sie uns ein paar einfache Programme erstellen, die sich auf Datum und Uhrzeit beziehen, bevor wir tiefer graben.
Beispiel 1:Aktuelles Datum und Uhrzeit abrufen
import datetime
datetime_object = datetime.datetime.now()
print(datetime_object)
Wenn Sie das Programm ausführen, sieht die Ausgabe in etwa so aus:
2018-12-19 09:26:03.478039
Hier haben wir datetime importiert Modul mit import datetime
Erklärung.
Eine der in datetime
definierten Klassen Modul ist datetime
Klasse. Wir haben dann now()
verwendet Methode zum Erstellen eines datetime
Objekt, das das aktuelle lokale Datum und die Uhrzeit enthält.
Beispiel 2:Aktuelles Datum abrufen
import datetime
date_object = datetime.date.today()
print(date_object)
Wenn Sie das Programm ausführen, sieht die Ausgabe in etwa so aus:
2018-12-19
In diesem Programm haben wir today()
verwendet in date
definierte Methode Klasse, um eine date
zu erhalten Objekt, das das aktuelle lokale Datum enthält.
Was ist in datetime enthalten?
Wir können die Funktion dir() verwenden, um eine Liste mit allen Attributen eines Moduls zu erhalten.
import datetime
print(dir(datetime))
Wenn Sie das Programm ausführen, lautet die Ausgabe:
['MAXYEAR', 'MINYEAR', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_divide_and_round', 'date', 'datetime', 'datetime_CAPI', 'time', 'timedelta', 'timezone', 'tzinfo']
Häufig verwendete Klassen im datetime-Modul sind:
- Datumsklasse
- Zeitklasse
- datetime-Klasse
- timedelta-Klasse
datetime.date-Klasse
Sie können date
instanziieren Objekte aus dem date
Klasse. Ein Datumsobjekt repräsentiert ein Datum (Jahr, Monat und Tag).
Beispiel 3:Datumsobjekt zur Darstellung eines Datums
import datetime
d = datetime.date(2019, 4, 13)
print(d)
Wenn Sie das Programm ausführen, lautet die Ausgabe:
2019-04-13
Wenn Sie sich fragen, date()
im obigen Beispiel ist ein Konstruktor von date
Klasse. Der Konstruktor akzeptiert drei Argumente:Jahr, Monat und Tag.
Die Variable a ist ein date
Objekt.
Wir können nur date
importieren Klasse aus datetime
Modul. So geht's:
from datetime import date
a = date(2019, 4, 13)
print(a)
Beispiel 4:Aktuelles Datum abrufen
Sie können einen date
erstellen Objekt, das das aktuelle Datum enthält, mithilfe einer Klassenmethode namens today()
. So geht's:
from datetime import date
today = date.today()
print("Current date =", today)
Beispiel 5:Datum aus einem Zeitstempel abrufen
Wir können auch date
erstellen Objekte aus einem Zeitstempel. Ein Unix-Zeitstempel ist die Anzahl der Sekunden zwischen einem bestimmten Datum und dem 1. Januar 1970 um UTC. Sie können einen Zeitstempel mit fromtimestamp()
in ein Datum konvertieren Methode.
from datetime import date
timestamp = date.fromtimestamp(1326244364)
print("Date =", timestamp)
Wenn Sie das Programm ausführen, lautet die Ausgabe:
Date = 2012-01-11
Beispiel 6:Aktuelles Jahr, Monat und Tag drucken
Wir können Jahr, Monat, Tag, Wochentag usw. leicht aus dem Datumsobjekt erhalten. So geht's:
from datetime import date
# date object of today's date
today = date.today()
print("Current year:", today.year)
print("Current month:", today.month)
print("Current day:", today.day)
DatumUhrzeit.Uhrzeit
Ein Zeitobjekt, das von time
instanziiert wird Klasse stellt die Ortszeit dar.
Beispiel 7:Zeitobjekt zur Darstellung der Zeit
from datetime import time
# time(hour = 0, minute = 0, second = 0)
a = time()
print("a =", a)
# time(hour, minute and second)
b = time(11, 34, 56)
print("b =", b)
# time(hour, minute and second)
c = time(hour = 11, minute = 34, second = 56)
print("c =", c)
# time(hour, minute, second, microsecond)
d = time(11, 34, 56, 234566)
print("d =", d)
Wenn Sie das Programm ausführen, lautet die Ausgabe:
a = 00:00:00 b = 11:34:56 c = 11:34:56 d = 11:34:56.234566
Beispiel 8:Stunde, Minute, Sekunde und Mikrosekunde drucken
Sobald Sie einen time
erstellt haben -Objekt können Sie seine Attribute wie Stunde einfach ausdrucken , Minute usw.
from datetime import time
a = time(11, 34, 56)
print("hour =", a.hour)
print("minute =", a.minute)
print("second =", a.second)
print("microsecond =", a.microsecond)
Wenn Sie das Beispiel ausführen, lautet die Ausgabe:
hour = 11 minute = 34 second = 56 microsecond = 0
Beachten Sie, dass wir Mikrosekunde nicht überschritten haben Streit. Daher sein Standardwert 0
wird gedruckt.
datetime.datetime
Die datetime
Modul hat eine Klasse namens dateclass
das Informationen von beiden Datum enthalten kann und Zeit Objekte.
Beispiel 9:Python-Datetime-Objekt
from datetime import datetime
#datetime(year, month, day)
a = datetime(2018, 11, 28)
print(a)
# datetime(year, month, day, hour, minute, second, microsecond)
b = datetime(2017, 11, 28, 23, 55, 59, 342380)
print(b)
Wenn Sie das Programm ausführen, lautet die Ausgabe:
2018-11-28 00:00:00 2017-11-28 23:55:59.342380
Die ersten drei Argumente year , Monat und Tag im datetime()
Konstruktor sind obligatorisch.
Beispiel 10:Jahr, Monat, Stunde, Minute und Zeitstempel drucken
from datetime import datetime
a = datetime(2017, 11, 28, 23, 55, 59, 342380)
print("year =", a.year)
print("month =", a.month)
print("hour =", a.hour)
print("minute =", a.minute)
print("timestamp =", a.timestamp())
Wenn Sie das Programm ausführen, lautet die Ausgabe:
year = 2017 month = 11 day = 28 hour = 23 minute = 55 timestamp = 1511913359.34238
datetime.timedelta
Ein timedelta
Objekt stellt die Differenz zwischen zwei Daten oder Zeiten dar.
Beispiel 11:Unterschied zwischen zwei Datums- und Zeitangaben
from datetime import datetime, date
t1 = date(year = 2018, month = 7, day = 12)
t2 = date(year = 2017, month = 12, day = 23)
t3 = t1 - t2
print("t3 =", t3)
t4 = datetime(year = 2018, month = 7, day = 12, hour = 7, minute = 9, second = 33)
t5 = datetime(year = 2019, month = 6, day = 10, hour = 5, minute = 55, second = 13)
t6 = t4 - t5
print("t6 =", t6)
print("type of t3 =", type(t3))
print("type of t6 =", type(t6))
Wenn Sie das Programm ausführen, lautet die Ausgabe:
t3 = 201 days, 0:00:00 t6 = -333 days, 1:14:20 type of t3 = <class 'datetime.timedelta'> type of t6 = <class 'datetime.timedelta'>
Beachten Sie, beide t3 und t6 sind <class 'datetime.timedelta'>
Typ.
Beispiel 12:Unterschied zwischen zwei timedelta-Objekten
from datetime import timedelta
t1 = timedelta(weeks = 2, days = 5, hours = 1, seconds = 33)
t2 = timedelta(days = 4, hours = 11, minutes = 4, seconds = 54)
t3 = t1 - t2
print("t3 =", t3)
Wenn Sie das Programm ausführen, lautet die Ausgabe:
t3 = 14 days, 13:55:39
Hier haben wir zwei timedelta
erstellt Objekte t1 und t2 , und ihre Differenz wird auf dem Bildschirm ausgedruckt.
Beispiel 13:Negatives Zeitdelta-Objekt drucken
from datetime import timedelta
t1 = timedelta(seconds = 33)
t2 = timedelta(seconds = 54)
t3 = t1 - t2
print("t3 =", t3)
print("t3 =", abs(t3))
Wenn Sie das Programm ausführen, lautet die Ausgabe:
t3 = -1 day, 23:59:39 t3 = 0:00:21
Beispiel 14:Zeitdauer in Sekunden
Sie können die Gesamtzahl der Sekunden in einem timedelta-Objekt mit total_seconds()
abrufen Methode.
from datetime import timedelta
t = timedelta(days = 5, hours = 1, seconds = 33, microseconds = 233423)
print("total seconds =", t.total_seconds())
Wenn Sie das Programm ausführen, lautet die Ausgabe:
total seconds = 435633.233423
Mit +
können Sie auch die Summe zweier Datums- und Zeitangaben finden Operator. Außerdem können Sie timedelta
multiplizieren und dividieren Objekt durch Ganzzahlen und Gleitkommazahlen.
Datum/Uhrzeit im Python-Format
Die Darstellung von Datum und Uhrzeit kann je nach Ort, Organisation usw. unterschiedlich sein. Üblicher ist die Verwendung von mm/dd/yyyy
in den USA, während dd/mm/yyyy
ist in Großbritannien häufiger.
Python hat strftime()
und strptime()
Methoden, um damit umzugehen.
Python strftime() - datetime-Objekt zu String
Der strftime()
Methode ist unter Klassen date
definiert , datetime
und time
. Die Methode erstellt einen formatierten String aus einem gegebenen date
, datetime
oder time
Objekt.
Beispiel 15:Datum mit strftime() formatieren
from datetime import datetime
# current date and time
now = datetime.now()
t = now.strftime("%H:%M:%S")
print("time:", t)
s1 = now.strftime("%m/%d/%Y, %H:%M:%S")
# mm/dd/YY H:M:S format
print("s1:", s1)
s2 = now.strftime("%d/%m/%Y, %H:%M:%S")
# dd/mm/YY H:M:S format
print("s2:", s2)
Wenn Sie das Programm ausführen, sieht die Ausgabe in etwa so aus:
time: 04:34:52 s1: 12/26/2018, 04:34:52 s2: 26/12/2018, 04:34:52
Hier %Y
, %m
, %d
, %H
usw. sind Formatcodes. Der strftime()
-Methode nimmt einen oder mehrere Formatcodes und gibt basierend darauf eine formatierte Zeichenfolge zurück.
Im obigen Programm t , s1 und s2 sind Zeichenfolgen.
%Y
- Jahr [0001,..., 2018, 2019,..., 9999]%m
- Monat [01, 02, ..., 11, 12]%d
- Tag [01, 02, ..., 30, 31]%H
- Stunde [00, 01, ..., 22, 23%M
- Minute [00, 01, ..., 58, 59]%S
- Sekunde [00, 01, ..., 58, 59]
Um mehr über strftime()
zu erfahren und Formatcodes finden Sie unter:Python strftime().
Python strptime() - String bis datetime
Der strptime()
-Methode erstellt einen datetime
Objekt aus einem gegebenen String (der Datum und Uhrzeit darstellt).
Beispiel 16:strptime()
from datetime import datetime
date_string = "21 June, 2018"
print("date_string =", date_string)
date_object = datetime.strptime(date_string, "%d %B, %Y")
print("date_object =", date_object)
Wenn Sie das Programm ausführen, lautet die Ausgabe:
date_string = 21 June, 2018 date_object = 2018-06-21 00:00:00
Der strptime()
Methode nimmt zwei Argumente:
- eine Zeichenfolge, die Datum und Uhrzeit darstellt
- Formatcode, der dem ersten Argument entspricht
Übrigens %d
, %B
und %Y
Formatcodes werden für Tag verwendet , Monat (vollständiger Name) und Jahr bzw..
Besuchen Sie Python strptime(), um mehr zu erfahren.
Umgang mit der Zeitzone in Python
Angenommen, Sie arbeiten an einem Projekt und müssen Datum und Uhrzeit basierend auf ihrer Zeitzone anzeigen. Anstatt zu versuchen, die Zeitzone selbst zu verwalten, empfehlen wir Ihnen, ein pytZ-Modul eines Drittanbieters zu verwenden.
from datetime import datetime
import pytz
local = datetime.now()
print("Local:", local.strftime("%m/%d/%Y, %H:%M:%S"))
tz_NY = pytz.timezone('America/New_York')
datetime_NY = datetime.now(tz_NY)
print("NY:", datetime_NY.strftime("%m/%d/%Y, %H:%M:%S"))
tz_London = pytz.timezone('Europe/London')
datetime_London = datetime.now(tz_London)
print("London:", datetime_London.strftime("%m/%d/%Y, %H:%M:%S"))
Wenn Sie das Programm ausführen, sieht die Ausgabe in etwa so aus:
Local time: 2018-12-20 13:10:44.260462 America/New_York time: 2018-12-20 13:10:44.260462 Europe/London time: 2018-12-20 13:10:44.260462
Hier, datetime_NY und datetime_London sind datetime-Objekte, die das aktuelle Datum und die Uhrzeit ihrer jeweiligen Zeitzone enthalten.
Python