Python strptime () - karakterlánc a datetime objektumhoz

Ebben a cikkben megtanulod létrehozni egy dátumidő objektumot egy karakterláncból (példák segítségével).

A strptime()metódus a megadott karaktersorozatból létrehoz egy dátum objektumot.

Megjegyzés: Nem hozhat létre datetimeobjektumot minden karakterláncból. A karakterláncnak bizonyos formátumban kell lennie.

1. példa: karakterlánc a datetime objektumhoz

  from datetime import datetime date_string = "21 June, 2018" 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)) 

A program futtatásakor a kimenet a következő lesz:

 date_string = 2018. június 21. date_string = date_object = 2018-06-21 00:00:00 date_object típus = 

Hogyan működik a strptime ()?

Az strptime()osztály metódusának két argumentuma van:

  • karakterlánc (amelyet idõre konvertálunk)
  • formátum kód

Az alkalmazott karaktersorozat és formátumkód alapján a metódus megadja annak megfelelő datetimeobjektumát.

A fenti példában:

Itt,

  • %d- A hónap napját képviseli. Példa: 01, 02,…, 31
  • %B- A hónap teljes neve. Példa: január, február stb.
  • %Y- Év négy számjeggyel. Példa: 2018, 2019 stb.

2. példa: karakterlánc a datetime objektumhoz

  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) 

A program futtatásakor a kimenet a következő lesz:

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

Kódlista formázása

Az alábbi táblázat bemutatja az összes használható formátumkódot.

Irányelv Jelentése Példa
%a Rövidített hétköznapi név. V, H,…
%A Teljes hétköznapi név. Vasárnap hétfő,…
%w Hétköznap decimális számként. 0, 1,…, 6
%d A hónap napja nulla betétes tizedesjegyként. 01, 02,…, 31
%-d A hónap napja decimális számként. 1., 2.,…, 30.
%b Rövidített havi név. Jan, február,…, dec
%B Teljes hónap neve. Január február,…
%m Hónap nulla betétes decimális számként. 01, 02,…, 12
%-m A hónap decimális számként. 1., 2.,…, 12.
%y Század nélküli év nulla betétes tizedesszámként. 00, 01,…, 99
%-y Év század nélkül, tizedes számként. 0, 1,…, 99
%Y Év, évszázad tizedesjegyként. 2013, 2019 stb.
%H Óra (24 órás óra) nulla betétes decimális számként. 00, 01,…, 23
%-H Óra (24 órás óra) tizedes számként. 0, 1,…, 23
%I Óra (12 órás óra) nulla betétes decimális számként. 01, 02,…, 12
%-I Óra (12 órás óra) decimális számként. 1., 2., 12.
%p A területi beállítás: AM vagy PM. DÉLELŐTT DÉLUTÁN
%M Perc nulla betétes decimális számként. 00, 01,…, 59
%-M Perc decimális számként. 0, 1,…, 59
%S Másodszor, nulla betétes decimális számként. 00, 01,…, 59
%-S Második tizedes számként. 0, 1,…, 59
%f Mikroszekundum decimális számként, balra nulla betétes. 000000 - 999999
%z UTC eltolás + HHMM vagy -HHMM alakban.
%Z Időzóna neve.
%j Az év napja nulla betétes tizedes számként. 001, 002,…, 366
%-j Az év napja decimális számként. 1, 2,…, 366
%U Az év heti száma (vasárnap, mint a hét első napja). Az első vasárnapot megelőző új év minden napja a 0. hétnek tekintendő. 00, 01,…, 53
%W Az év heti száma (hétfő, mint a hét első napja). Az első hétfőt megelőző új év minden napja a 0. hétnek tekintendő. 00, 01,…, 53
%c A területi beállítás megfelelő dátum és idő ábrázolása. 2013. szeptember 30., hétfő, 07:06:05
%x A területi beállítás megfelelő dátumábrázolása. 2013. 09. 30.
%X A nyelv megfelelő időbeli ábrázolása. 07:06:05
%% Szó szerinti „%” karakter. %

ValueError strptime-ben ()

Ha a karakterlánc (első argumentum) és a formátumkód (második argumentum) strptime()nem egyezik, akkor megkapja ValueError. Például:

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

Ha futtatja ezt a programot, hibaüzenetet kap.

 ValueError: A '12 / 11/2018 'időadat nem egyezik a (z)'% d% m% Y 'formátummal 

Ajánlott olvasmányok: Python strftime ()

érdekes cikkek...