Python strptime()

Table of Contents

In diesem Artikel lernen Sie, wie Sie aus einer Zeichenkette ein datetime-Objekt erstellen (mit Hilfe von Beispielen).

 


 

Die strptime() Methode erzeugt ein datetime-Objekt aus der angegebenen Zeichenkette.

 

Notiz

Sie können nicht erstellen datetime Objekt aus jeder Zeichenkette. Die Zeichenkette muss ein bestimmtes Format haben.

 


 

Beispiel 1: string to datetime object

 

from datetime import datetime

date_string = "21 June, 2021"

print("date_string =", date_string)
print("type of date_string =", type(date_string))

date_object = datetime.strptime(date_string, "%d %B, %Y")

print("date_object =", date_object)
print("type of date_object =", type(date_object))

 

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

date_string = 21 June, 2021
type of date_string = <class 'str'>
date_object = 2021-06-21 00:00:00
type of date_object = <class 'datetime.datetime'>

 


 

How strptime() works?

 

The strptime() Klassenmethode nimmt zwei Argumente entgegen:

 

  • string (die in datetime konvertiert werden)
  • format code

 

Basierend auf der verwendeten Zeichenkette und dem Formatcode gibt die Methode ihr Äquivalent zurück datetime object.

Im obigen Beispiel:

 

Hier,

 

  • %d – Stellt den Tag des Monats dar. Example: 01, 02, …, 31
  • %B – Name des Monats in voller Länge. Example: January, February etc.
  • %Y – Jahr in vier Ziffern. Example: 2018, 2019 etc.

 


 

Beispiel 2: string to datetime object

 

from datetime import datetime

dt_string = "12/11/2018 09:15:32"

# Considering date is in dd/mm/yyyy format
dt_object1 = datetime.strptime(dt_string, "%d/%m/%Y %H:%M:%S")
print("dt_object1 =", dt_object1)

# Considering date is in mm/dd/yyyy format
dt_object2 = datetime.strptime(dt_string, "%m/%d/%Y %H:%M:%S")
print("dt_object2 =", dt_object2)

 

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

dt_object1 = 2018-11-12 09:15:32
dt_object2 = 2018-12-11 09:15:32

 


 

Format Code List

 

Die folgende Tabelle zeigt alle Format codes, die Sie verwenden können.

 

Directive Meaning Example
%a Abbreviated weekday name. Sun, Mon, …
%A Full weekday name. Sunday, Monday, …
%w Weekday as a decimal number. 0, 1, …, 6
%d Day of the month as a zero-padded decimal. 01, 02, …, 31
%-d Day of the month as a decimal number. 1, 2, …, 30
%b Abbreviated month name. Jan, Feb, …, Dec
%B Full month name. January, February, …
%m Month as a zero-padded decimal number. 01, 02, …, 12
%-m Month as a decimal number. 1, 2, …, 12
%y Year without century as a zero-padded decimal number. 00, 01, …, 99
%-y Year without century as a decimal number. 0, 1, …, 99
%Y Year with century as a decimal number. 2013, 2019 etc.
%H Hour (24-hour clock) as a zero-padded decimal number. 00, 01, …, 23
%-H Hour (24-hour clock) as a decimal number. 0, 1, …, 23
%I Hour (12-hour clock) as a zero-padded decimal number. 01, 02, …, 12
%-I Hour (12-hour clock) as a decimal number. 1, 2, … 12
%p Locale’s AM or PM. AM, PM
%M Minute as a zero-padded decimal number. 00, 01, …, 59
%-M Minute as a decimal number. 0, 1, …, 59
%S Second as a zero-padded decimal number. 00, 01, …, 59
%-S Second as a decimal number. 0, 1, …, 59
%f Microsecond as a decimal number, zero-padded on the left. 000000 – 999999
%z UTC offset in the form +HHMM or -HHMM.
%Z Time zone name.
%j Day of the year as a zero-padded decimal number. 001, 002, …, 366
%-j Day of the year as a decimal number. 1, 2, …, 366
%U Week number of the year (Sunday as the first day of the week). All days in a new year preceding the first Sunday are considered to be in week 0. 00, 01, …, 53
%W Week number of the year (Monday as the first day of the week). All days in a new year preceding the first Monday are considered to be in week 0. 00, 01, …, 53
%c Locale’s appropriate date and time representation. Mon Sep 30 07:06:05 2013
%x Locale’s appropriate date representation. 09/30/13
%X Locale’s appropriate time representation. 07:06:05
%% A literal ‘%’ character. %

 


 

ValueError in strptime()

 

Wenn die Zeichenkette (erstes Argument) und der Format code (zweites Argument), die an die Funktion strptime() nicht übereinstimmt, erhalten Sie ValueError. Zum Beispiel:

 

from datetime import datetime

date_string = "12/11/2018"
date_object = datetime.strptime(date_string, "%d %m %Y")

print("date_object =", date_object)

 

Wenn Sie dieses Programm ausführen, erhalten Sie einen Fehler.

ValueError: time data '12/11/2018' does not match format '%d %m %Y'

 

Empfohlene Lektüre: Python strftime()