Š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 datetime
objekto 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ą datetime
objektą.
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 ()