# Python datetime: So arbeiten Sie mit Datum und Uhrzeit in Python

Das **Python-Modul datetime** erleichtert das Arbeiten mit Datums- und Zeitangaben. So können Sie mit nur wenigen Zeilen Code Daten in verschiedenen Formaten darstellen und Datumsobjekte erstellen.

## Das Modul datetime im Überblick

Bei Python datetime handelt es sich um ein Python-Modul, das Sie kennen sollten, ganz gleich, ob Sie gerade Ihr erstes [Python-Tutorial](https://www.ionos.de/digitalguide/websites/web-entwicklung/python-tutorial/ "Python-Tutorial") durchgelesen haben oder schon lange mit der [Internet-Programmiersprache](https://www.ionos.de/digitalguide/websites/web-entwicklung/internet-programmiersprachen/ "Internet-Programmiersprachen") arbeiten. Module können Sie sich ähnlich wie eine Codebibliothek in anderen Programmiersprachen vorstellen. Durch den Import des datetime-Moduls erweitern Sie Python um **Funktionen für Datums- und Zeitverarbeitung**. Hierfür werden innerhalb des Moduls spezifische Datumsobjekte genutzt, die Sie in Ihrem Code einfach erstellen können.

Tipp Sie verwenden Python bei Ihrem Webprojekt? Mit IONOS [Deploy Now](https://www.ionos.de/hosting/deploy-now "Deploy Now von IONOS") können Sie Code-Änderungen zu jeder Zeit einfach via [GitHub](https://www.ionos.de/digitalguide/websites/web-entwicklung/github/ "GitHub") deployen und live den aktuellen Stand Ihres Projekts verfolgen.

## Python datetime: Datum und Zeit

Sie können Python datetime beispielsweise dazu nutzen, ein Datum und eine Uhrzeit in einem gesonderten Objekt zu speichern. Hierfür benötigen Sie den **Python-datetime-Konstruktor**, dessen Syntax wie folgt aussieht:

```none
import datetime as dt
dt.datetime(year, month, day, hour, minute, second, microsecond, timezone)
```

Die Parameter, die die Funktion nimmt, repräsentieren das aktuelle Datum sowie die gegenwärtige Uhrzeit. Dabei sind die Parameter zum Spezifizieren der Uhrzeit optional; der Default-Value ist immer auf 0 gesetzt. Das Gleiche trifft auf den Parameter zu, der die Zeitzone angibt und per Default auf NULL gesetzt ist. Die datetime-Funktion liefert Ihnen ein Python-datetime-Objekt zurück.

## Python date: Datum

Analog zum datetime-Konstruktor gibt es auch den **Python-date-Konstruktor**, mit dem sich ein date-Objekt erstellen lässt. Hierbei spielt die aktuelle Zeit keine Rolle. Syntaktisch ähnelt der date-Konstruktor seinem datetime-Pendant:

```none
import datetime as dt
dt.date(year, month, day)
```

Die Übergabeparameter, die der Python-date-Konstruktor entgegennimmt, sind das gewünschte Jahr, der gewünschte Monat und der gewünschte Tag. Resultat des Funktionsaufrufs ist ein date-Objekt.

## Das aktuelle Datum abrufen: So funktioniert es

Wenn Sie nicht irgendwelche spezifischen Daten, sondern das aktuelle Datum und die aktuelle Zeit speichern möchten, dann stehen Ihnen **vordefinierte Funktionen** zur Verfügung. Je nachdem, ob Sie sich nur für das aktuelle Datum oder für das aktuelle Datum samt Zeit interessieren, müssen Sie zu einer anderen Funktion greifen.

### Vorgehen für das aktuelle Datum

Wenn Sie nur am Datum bestehend aus Jahr, Monat und Tag interessiert sind, können Sie eine Funktion aus der Python-date-Klasse nutzen, die den Namen „**today**“ trägt. Der Funktionsaufruf ist simpel:

```none
import datetime as dt
current_date = dt.date.today()
```

Um die today-Funktion aufzurufen, müssen Sie zunächst das Modul datetime angeben, das im obigen Beispiel mit dem **Alias dt** versehen ist. Anschließend nutzen Sie die Punktnotation, um auf die Klasse date zuzugreifen, in der wiederum die today-Funktion spezifiziert ist. Nachdem der obenstehende Code ausgeführt wurde, befindet sich **in der Variable namens current\_date** ein Python-date-Objekt mit dem aktuellen Datum.

### Vorgehen für das aktuelle Datum samt Zeit

Falls Sie auch die aktuelle Uhrzeit benötigen, hilft Ihnen eine Funktion aus der Klasse datetime weiter: **now**. Mit einem Aufruf von now erhalten Sie ein Python-datetime-Objekt, das neben dem aktuellen Datum auch die gegenwärtige Zeit beinhaltet – und das auf die Millisekunde genau.

```none
import datetime as dt
current_date_and_time = dt.datetime.now()
```

Der Aufruf erfolgt **analog zum Aufruf der today-Funktion**, allerdings innerhalb der Klasse datetime. In der Variable „current\_date\_and\_time“ ist nach dem Funktionsaufruf ein datetime-Objekt hinterlegt, das das gegenwärtige Datum und die aktuelle Zeit enthält.

Tipp Wenn Sie sich nur für einzelne Werte eines Objekts wie beispielsweise den Tag interessieren, dann können Sie die **Punktnotation** nutzen, um auf genau diesen Wert zuzugreifen. Mit „current\_date.day“ greifen Sie dann beispielsweise auf den aktuellen Tag zu.

## Daten in Python formatieren

Insbesondere für Anwendungen, bei denen Sie das Datum ausgeben möchten, brauchen Sie eine Möglichkeit, die datetimes- bzw. date-Objekte passend für Ihren Anwendungszweck zu formatieren. Auch hierfür stellt das Python-datetime-Modul eine passende Funktion namens **strftime** bereit.

Die Syntax der Funktion sieht wie folgt aus:

```none
import datetime as dt
current_date = dt.date.today()
current_date.strftime(format)
```

Die Funktion wird **direkt auf einem date- oder datetime-Objekt aufgerufen** und nimmt als Übergabeparameter ein bestimmtes Format entgegen. Dieses Format müssen Sie als [Python String](https://www.ionos.de/digitalguide/websites/web-entwicklung/python-string/ "Python String"), also innerhalb von Anführungszeichen, angeben. Python unterstützt dabei eine Reihe verschiedener Formate, über deren Kürzel Sie sich in der folgenden Tabelle einen Überblick verschaffen können:

<table>
  <thead>
    <tr>
      <th>Kürzel</th>
      <th>Beschreibung</th>
      <th>Beispiel</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>%a</td>
      <td>Wochentag, abgekürzt</td>
      <td>Sat</td>
    </tr>
    <tr>
      <td>%A</td>
      <td>Wochentag, ausgeschrieben</td>
      <td>Saturday</td>
    </tr>
    <tr>
      <td>%w</td>
      <td>Wochentag als Nummer</td>
      <td>6</td>
    </tr>
    <tr>
      <td>%u</td>
      <td>ISO 8601 Wochentag</td>
      <td>6</td>
    </tr>
    <tr>
      <td>%j</td>
      <td>Nummer des aktuellen Tages (bezogen auf das ganze Jahr)</td>
      <td>365</td>
    </tr>
    <tr>
      <td>%b</td>
      <td>Monatsname, abgekürzt</td>
      <td>Dec</td>
    </tr>
    <tr>
      <td>%B</td>
      <td>Monatsname, ausgeschrieben</td>
      <td>December</td>
    </tr>
    <tr>
      <td>%m</td>
      <td>Monat als Nummer</td>
      <td>12</td>
    </tr>
    <tr>
      <td>%U</td>
      <td>Wochennummer, beginnend bei Sonntag als erstem Wochentag</td>
      <td>50</td>
    </tr>
    <tr>
      <td>%W</td>
      <td>Wochennummer, beginnend bei Montag als erstem Wochentag</td>
      <td>50</td>
    </tr>
    <tr>
      <td>%y</td>
      <td>Jahr, abgekürzt</td>
      <td>22</td>
    </tr>
    <tr>
      <td>%Y</td>
      <td>Jahr, ausgeschrieben</td>
      <td>2022</td>
    </tr>
    <tr>
      <td>%H</td>
      <td>Stunde (0-23)</td>
      <td>22</td>
    </tr>
    <tr>
      <td>%I</td>
      <td>Stunde (0-12)</td>
      <td>11</td>
    </tr>
    <tr>
      <td>%p</td>
      <td>AM oder PM</td>
      <td>AM</td>
    </tr>
    <tr>
      <td>%M</td>
      <td>Minute</td>
      <td>59</td>
    </tr>
    <tr>
      <td>%S</td>
      <td>Sekunde</td>
      <td>37</td>
    </tr>
    <tr>
      <td>%f</td>
      <td>Mikrosekunde</td>
      <td>567213</td>
    </tr>
    <tr>
      <td>%z</td>
      <td>UTC-Offset</td>
      <td>+0100</td>
    </tr>
    <tr>
      <td>%Z</td>
      <td>Zeitzone</td>
      <td>CST</td>
    </tr>
  </tbody>
</table>


This is a markdown version of: [https://www.ionos.de/digitalguide/websites/web-entwicklung/python-datetime/](https://www.ionos.de/digitalguide/websites/web-entwicklung/python-datetime/) for AI/LLM consumption.