Python strptime () - merkkijono datetime-objektiin

Tässä artikkelissa opit luomaan päivämääräobjektin merkkijonosta (esimerkkien avulla).

strptime()Menetelmä luo datetime objektin annettu merkkijono.

Huomaa: Et voi luoda datetimeobjektia jokaisesta merkkijonosta. Merkkijonon on oltava tietyssä muodossa.

Esimerkki 1: merkkijono päivämäärä-objektiin

  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)) 

Kun suoritat ohjelmaa, tulos on:

 date_string = 21. kesäkuuta 2018 date_string = date_object = 2018-06-21 00:00:00 date_object -tyyppi = 

Kuinka strptime () toimii?

strptime()Luokan menetelmä ottaa kaksi argumenttia:

  • merkkijono (joka muunnetaan päivämääräajaksi)
  • muodon koodi

Käytetyn merkkijonon ja muotoilukoodin perusteella menetelmä palauttaa vastaavan datetimeobjektin.

Yllä olevassa esimerkissä:

Tässä,

  • %d- Edustaa kuukauden päivää. Esimerkki: 01, 02,…, 31
  • %B- Kuukauden nimi kokonaan. Esimerkki: tammikuu, helmikuu jne.
  • %Y- Vuosi nelinumeroisena. Esimerkki: 2018, 2019 jne.

Esimerkki 2: merkkijono datetime-objektiin

  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) 

Kun suoritat ohjelmaa, tulos on:

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

Alusta koodiluettelo

Alla oleva taulukko näyttää kaikki käyttämäsi muotoilukoodit.

Direktiivi Tarkoitus Esimerkki
%a Lyhennetty arkipäivän nimi. Su, ma…
%A Koko viikonpäivän nimi. Sunnuntai maanantai,…
%w Viikonpäivä desimaalilukuna. 0, 1,…, 6
%d Kuukauden päivä nollapehmustettuna desimaalina. 01, 02,…, 31
%-d Kuukauden päivä desimaalilukuna. 1, 2,…, 30
%b Lyhennetty kuukauden nimi. Tammi, helmikuu,…, joulu
%B Koko kuukauden nimi. Tammikuu helmikuu,…
%m Kuukausi nollalla täytetty desimaaliluku. 01, 02,…, 12
%-m Kuukausi desimaalilukuna. 1, 2,…, 12
%y Vuosi ilman vuosisataa nollapehmustettuna desimaalilukuna. 00, 01,…, 99
%-y Vuosi ilman vuosisataa desimaaliluvuna. 0, 1,…, 99
%Y Vuosi vuosisadalla desimaalilukuna. 2013, 2019 jne.
%H Tunnit (24 tunnin kello) nollapehmustettuna desimaalilukuna. 00, 01,…, 23
%-H Tunti (24 tunnin kello) desimaalilukuna. 0, 1,…, 23
%I Tunnit (12 tunnin kello) nollapehmustettuna desimaalilukuna. 01, 02,…, 12
%-I Tunti (12 tunnin kello) desimaalilukuna. 1, 2,… 12
%p Kielen AM tai PM. AAMUPÄIVÄ ILTAPÄIVÄ
%M Minuutti nollapehmustettu desimaaliluku. 00, 01,…, 59
%-M Minuutti desimaalilukuna. 0, 1,…, 59
%S Toinen on nollapehmustettu desimaaliluku. 00, 01,…, 59
%-S Toinen desimaalilukuna. 0, 1,…, 59
%f Mikrosekunnin desimaaliluku, nollapehmustettu vasemmalla. 000000 - 999999
%z UTC-offset muodossa + HHMM tai -HHMM.
%Z Aikavyöhykkeen nimi.
%j Vuoden päivä nollapehmustettuna desimaalilukuna. 001, 002,…, 366
%-j Vuoden päivä desimaalilukuna. 1, 2,…, 366
%U Vuoden viikkonumero (sunnuntai viikon ensimmäisenä päivänä). Ensimmäistä sunnuntaia edeltävän uuden vuoden kaikkien päivien katsotaan olevan viikolla 0. 00, 01,…, 53
%W Vuoden viikkonumero (maanantai viikon ensimmäisenä päivänä). Kaikkia ensimmäistä maanantaina edeltävän uuden vuoden päiviä pidetään viikolla 0. 00, 01,…, 53
%c Kielen sopiva päivämäärä- ja kellonaikaesitys. Ma 30. syyskuuta 07:06:05 2013
%x Kielen sopiva päivämääräesitys. 30.9.2013
%X Kielen sopiva aikaesitys. 07:06:05
%% Kirjaimellinen '%' merkki. %

ValueError strptimessa ()

Jos merkkijono (ensimmäinen argumentti) ja muotoilukoodi (toinen argumentti) välitetään, strptime()eivät täsmää, saat ValueError. Esimerkiksi:

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

Jos suoritat tämän ohjelman, saat virheilmoituksen.

 ValueError: aikatiedot '12 / 11/2018 'eivät vastaa muotoa'% d% m% Y ' 

Suositeltavat lukemat: Python strftime ()

Mielenkiintoisia artikkeleita...