Python datetime

Table of Contents

 

In diesem Artikel lernen Sie anhand von Beispielen, wie Sie Datum und Uhrzeit in Python manipulieren können.

 


 

Python hat ein Modul namens datetime, um mit Datums- und Zeitangaben zu arbeiten. Lassen Sie uns ein paar einfache Programme erstellen, die mit Datum und Uhrzeit zu tun haben, bevor wir tiefer einsteigen.

 


 

 

Beispiel 1: Get Current Date and Time

 

import datetime

datetime_object = datetime.datetime.now()
print(datetime_object)

 

Wenn Sie das Programm ausführen, wird die Ausgabe in etwa so aussehen:

2021-07-12 04:19:09.826585

 

 

Hier haben wir importiert datetime modul mit import datetime statement.

 

Eine der im . definierten Klassen datetime module is datetime class. Wir verwendeten dann now() Methode zum Erstellen eines datetime Objekt, das das aktuelle lokale Datum und die Uhrzeit enthält.

 


 

Beispiel 2: Get Current Date

import datetime

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

 

Wenn Sie das Programm ausführen, wird die Ausgabe in etwa so aussehen:

2021-07-13

 

 

In diesem Programm haben wir verwendet today() methode definiert im date Klasse, um ein zu bekommen date Objekt, das das aktuelle lokale Datum enthält.

 


 

What’s inside datetime?

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, wird die Ausgabe sein:

['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:

  • date Class
  • time Class
  • datetime Class
  • timedelta Class

 


datetime.date Class

 

Sie können instanziieren date Objekte aus dem date class. Ein Datumsobjekt repräsentiert ein Datum (Jahr, Monat und Tag).

 


 

Beispiel 3: Date object to represent a date

import datetime

d = datetime.date(2019, 4, 13)
print(d)

 

Wenn Sie das Programm ausführen, wird die Ausgabe sein:

2021-07-13

 

 

Wenn Sie sich fragen, date() im obigen Beispiel ist ein Konstruktor der date class. Der Konstruktor nimmt drei Argumente entgegen: Jahr, Monat und Tag.

The variable a ist eine date Objekt.

 


 

Wir können nur importieren date Klasse aus dem datetime Modul. Hier ist wie:

Die Variable a ist eine date Objekt.

from datetime import date

a = date(2021, 7, 13)
print(a)

 


 

Beispiel 4: Get current date

 

Sie können eine erstellen date Objekt, das das aktuelle Datum enthält, mit Hilfe einer Klassenmethode namens today(). Hier ist wie:

from datetime import date

today = date.today()

print("Current date =", today)

 


 

 

Beispiel 5: Get date from a timestamp

 

Wir können auch erstellen date Objekte aus einem Zeitstempel. Ein Unix-Zeitstempel ist die Anzahl der Sekunden zwischen einem bestimmten Datum und dem 1. Januar 1970 in UTC. Sie können einen Zeitstempel in ein Datum umwandeln mit fromtimestamp() method.

from datetime import date

timestamp = date.fromtimestamp(1326244364)
print("Date =", timestamp)

 

Wenn Sie das Programm ausführen, wird die Ausgabe sein:

Date = 2012-01-11

 


 

 

Beispiel 6: Print today’s year, month and day

Wir können Jahr, Monat, Tag, Wochentag usw. leicht aus dem Datumsobjekt erhalten. Hier ist wie:

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)

 

 


 

datetime.time

 

Ein Zeitobjekt, das aus dem instanziiert wurde time Klasse repräsentiert die lokale Zeit.

 


 

 

Beispiel 7: Time object to represent time

 

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, wird die Ausgabe sein:

a = 00:00:00
b = 11:34:56
c = 11:34:56
d = 11:34:56.234566

 


 

Beispiel 8: Print hour, minute, second and microsecond

 

Sobald Sie eine erstellt habentime Objekts können Sie dessen Attribute einfach ausdrucken, z. B. hour, minute etc.

Ein Zeitobjekt, das aus dem instanziiert wurde time Klasse repräsentiert die lokale Zeit.

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, wird die Ausgabe sein:

hour = 11
minute = 34
second = 56
microsecond = 0

 

Beachten Sie, dass wir nicht bestanden haben microsecond argument. Daher ist sein Standardwert 0 gedruckt wird.

 


 

datetime.datetime

 

The datetime Modul hat eine Klasse namens dateclass die Informationen von beiden Objekten enthalten können date and time

 


 

 

Beispiel 9: Python datetime object

 

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, wird die Ausgabe sein:

2018-11-28 00:00:00
2017-11-28 23:55:59.342380

 

Die ersten drei Argumente year, month und day in dem datetime() Konstruktor sind obligatorisch.

 


 

 

Beispiel 10: Print year, month, hour, minute and timestamp

 

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, wird die Ausgabe sein:

year = 2017
month = 11
day = 28
hour = 23
minute = 55
timestamp = 1511913359.34238

 


 

datetime.timedelta

A timedelta Objekt stellt die Differenz zwischen zwei Daten oder Zeiten dar.

 


 

Beispiel 11: Difference between two dates and times

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, wird die Ausgabe sein:

t3 = 201 days, 0:00:00
t6 = -333 days, 1:14:20
type of t3 = <class 'datetime.timedelta'>
type of t6 = <class 'datetime.timedelta'>

 

 

Hinweis, beide t3 und t6 sind vom <class 'datetime.timedelta'> type.

 


 

 

Beispiel 12: Difference between two timedelta objects

 

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, wird die Ausgabe sein:

t3 = 14 days, 13:55:39

 

Hier haben wir zwei erstellt timedelta Objekte t1 und t2, und ihre Differenz wird auf dem Bildschirm angezeigt.

 


 

 

Beispiel 13: Printing negative timedelta object

 

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, wird die Ausgabe sein:

t3 = -1 day, 23:59:39
t3 = 0:00:21

 


 

 

Beispiel 14: Time duration in seconds

 

Sie können die Gesamtzahl der Sekunden in einem Zeitdelta-Objekt mit ermitteln total_seconds() method.

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, wird die Ausgabe sein:

total seconds = 435633.233423

 


 

Sie können auch die Summe zweier Daten und Zeiten mit + operator. Sie können auch a . multiplizieren und dividierentimedelta Objekt durch Ganzzahlen und Floats.

 


 

Python format datetime

 

Die Art und Weise, wie Datum und Uhrzeit dargestellt werden, kann an verschiedenen Orten, Organisationen usw. unterschiedlich sein. Es ist üblicher, Folgendes zu verwenden mm/dd/yyyy in den USA, während dd/mm/yyyy ist häufiger in Großbritannien more.

 

Python hat strftime() und strptime() Methoden, damit umzugehen.

 


 

Python strftime() – datetime object to string

 

 

The strftime() Methode ist unter Klassen definiert date, datetime und time. Die Methode erzeugt eine formatierte Zeichenkette aus einer gegebenen date, datetime oder time Objekt.

 


 

Beispiel15: Format date using strftime()

 

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 etwa so aus:

time: 04:34:52
s1: 07/13/2021, 04:34:52
s2: 13/07/2021, 04:34:52

 

 

Hier, %Y, %m, %d, %H usw. sind Formatcodes. Die strftime() Methode nimmt einen oder mehrere Formatcodes und gibt eine darauf basierende formatierte Zeichenkette zurück.

 

Im obigen Programm, t, s1 und s2 sind Saiten.

  • %Y – year [0001,…, 2018, 2019,…, 9999]
  • %m – month [01, 02, …, 11, 12]
  • %d – day [01, 02, …, 30, 31]
  • %H – hour [00, 01, …, 22, 23
  • %M – minute [00, 01, …, 58, 59]
  • %S – second [00, 01, …, 58, 59]

 

Um mehr zu erfahren über strftime() und format codes, visit: Python strftime().

 


 

Python strptime() – string to datetime

 

 

Die strptime() Methode erstellt a datetime Objekt aus einer bestimmten Zeichenfolge (die Datum und Uhrzeit darstellt).

 


 

 

Beispiel 16: strptime()

 

from datetime import datetime

date_string = "13 July, 2021"
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, wird die Ausgabe sein

date_string = 13 July, 2021
date_object = 2021-07-13 00:00:00

 

 

Die strptime() Methode nimmt zwei Argumente entgegen:

 

  1. eine Zeichenfolge, die Datum und Uhrzeit darstellt
  2. Formatcode, der dem ersten Argument entspricht

 

Apropos, %d, %B und %Y Formatcodes werden verwendet für day, month(full name) und year beziehungsweise.

Besuchen Sie Python strptime(), um mehr zu erfahren.


 

Handling timezone 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 handhaben, empfehlen wir Ihnen, einen Drittanbieter zu verwenden pytZ module.

 

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 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 aktuelle Uhrzeit ihrer jeweiligen Zeitzone enthalten.