Tässä artikkelissa opit luomaan päivämääräobjektin merkkijonosta (esimerkkien avulla).
strptime()
Menetelmä luo datetime objektin annettu merkkijono.
Huomaa: Et voi luoda datetime
objektia 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 datetime
objektin.
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 ()