Python strptime () - eilutė į datetime objektą

Šiame straipsnyje išmoksite sukurti datos laiko objektą iš eilutės (naudodamiesi pavyzdžiais).

strptime()Metodas sukuria datetime objektą iš tikro eilutę.

Pastaba: Jūs negalite sukurti datetimeobjekto iš kiekvienos eilutės. Stygos turi būti tam tikro formato.

1 pavyzdys: eilutė į datetime objektą

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

Kai paleisite programą, išvestis bus:

 date_string = 2018 m. birželio 21 d. date_string = date_object = 2018-06-21 00:00:00 date_object tipas = 

Kaip veikia strptime ()?

strptime()Klasės metodas trunka du argumentus:

  • eilutė (konvertuojama į datos laiką)
  • formato kodas

Remiantis naudojama eilute ir formato kodu, metodas grąžina jam ekvivalentišką datetimeobjektą.

Ankstesniame pavyzdyje:

Čia

  • %d- Atstovauja mėnesio dienai. Pavyzdys: 01, 02,…, 31
  • %B- Visas mėnesio vardas. Pavyzdys: sausis, vasaris ir kt.
  • %Y- Metai keturiais skaitmenimis. Pavyzdys: 2018, 2019 ir kt.

2 pavyzdys: eilutė į datetime objektą

  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) 

Kai paleisite programą, išvestis bus:

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

Formatuoti kodų sąrašą

Žemiau esančioje lentelėje pateikiami visi formatų kodai, kuriuos galite naudoti.

Direktyvą Reikšmė Pavyzdys
%a Sutrumpintas savaitės dienos pavadinimas. Sekmadienis, pirmadienis,…
%A Visas darbo dienos pavadinimas. Sekmadienis Pirmadienis,…
%w Savaitės diena kaip dešimtainis skaičius. 0, 1,…, 6
%d Mėnesio diena kaip nulinis užpildas po kablelio. 01, 02,…, 31
%-d Mėnesio diena kaip dešimtainis skaičius. 1, 2,…, 30
%b Sutrumpintas mėnesio pavadinimas. Sausis, vasaris,…, gruodis
%B Visas mėnesio pavadinimas. Sausis Vasaris,…
%m Mėnuo kaip nulio užpildytas dešimtainis skaičius. 01, 02,…, 12
%-m Mėnuo kaip dešimtainis skaičius. 1, 2,…, 12
%y Metai be šimtmečio kaip nulio užpildytas dešimtainis skaičius. 00, 01,…, 99
%-y Metai be šimtmečio kaip dešimtainis skaičius. 0, 1,…, 99
%Y Metai su šimtmečiu kaip dešimtainis skaičius. 2013, 2019 ir kt.
%H Valanda (24 valandų laikrodis) kaip nulis užpildytas dešimtainis skaičius. 00, 01,…, 23
%-H Valanda (24 valandų laikrodis) kaip dešimtainis skaičius. 0, 1,…, 23
%I Valanda (12 valandų laikrodis) kaip nulis užpildytas dešimtainis skaičius. 01, 02,…, 12
%-I Valanda (12 valandų laikrodis) kaip dešimtainis skaičius. 1, 2,… 12
%p Lokalės AM arba PM. RYTO VAKARO
%M Minutė kaip nulio užpildytas dešimtainis skaičius. 00, 01,…, 59
%-M Minutė kaip dešimtainis skaičius. 0, 1,…, 59
%S Antras kaip nulis užpildytas dešimtainis skaičius. 00, 01,…, 59
%-S Antras kaip dešimtainis skaičius. 0, 1,…, 59
%f Mikrosekundė kaip dešimtainis skaičius, kairėje padengtas nuliu. 000000 - 999999
%z UTC poslinkis formos + HHMM arba -HHMM forma.
%Z Laiko juostos pavadinimas.
%j Metų diena kaip nulio užpildytas dešimtainis skaičius. 001, 002,…, 366
%-j Metų diena kaip dešimtainis skaičius. 1, 2,…, 366
%U Metų savaitės numeris (sekmadienis kaip pirmoji savaitės diena). Visos naujos metų dienos iki pirmojo sekmadienio laikomos 0 savaitę. 00, 01,…, 53
%W Metų savaitės numeris (pirmadienis kaip pirmoji savaitės diena). Visos naujos metų dienos, einančios prieš pirmąjį pirmadienį, laikomos 0 savaitę. 00, 01,…, 53
%c Tinkamas lokalės datos ir laiko atvaizdavimas. 2013 m. Rugsėjo 30 d., 07:06:05
%x Tinkamas lokalės datos pateikimas. 2013-09-30
%X Tinkamas lokalės laiko reprezentavimas. 07:06:05
%% Pažodinis „%“ simbolis. %

„ValueError“ strptime ()

Jei strptime()neatitiks eilutė (pirmasis argumentas) ir formato kodas (antrasis argumentas) , gausite ValueError. Pavyzdžiui:

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

Jei paleisite šią programą, gausite klaidą.

 „ValueError“: laiko duomenys „12/11/2018“ neatitinka „% d% m% Y“ formato 

Rekomenduojami skaitiniai: Python strftime ()

Įdomios straipsniai...