V tem članku se boste naučili ustvariti predmet datuma in časa iz niza (s pomočjo primerov).
strptime()
Metoda ustvarja datetime predmet iz danega niza.
Opomba:datetime
Objekta ni mogoče ustvariti iz vsakega niza. Niz mora biti v določeni obliki.
Primer 1: niz do predmeta datetime
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))
Ko zaženete program, bo rezultat:
date_string = 21. junij 2018 vrsta date_string = date_object = 2018-06-21 00:00:00 vrsta date_object =
Kako deluje strptime ()?
Metoda strptime()
razreda ima dva argumenta:
- niz (ki se pretvori v datum in čas)
- koda formata
Na podlagi uporabljene kode niza in oblike metoda vrne enakovreden datetime
objekt.
V zgornjem primeru:
Tukaj,
%d
- Predstavlja dan v mesecu. Primer: 01, 02,…, 31%B
- Ime meseca v celoti. Primer: januar, februar itd.%Y
- Leto s štirimestnimi številkami. Primer: 2018, 2019 itd.
Primer 2: niz za objekt datum-čas
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)
Ko zaženete program, bo rezultat:
dt_object1 = 2018-11-12 09:15:32 dt_object2 = 2018-12-11 09:15:32
Oblikuj seznam kod
Spodnja tabela prikazuje vse oblike kod, ki jih lahko uporabite.
Direktive | Pomen | Primer |
%a | Skrajšano ime delavnika. | Sonce, pon… |
%A | Polno ime delavnika. | Nedelja, ponedeljek,… |
%w | Delovni dan kot decimalno število. | 0, 1,…, 6 |
%d | Dan v mesecu kot decimalno ničlo. | 01, 02, …, 31 |
%-d | Dan v mesecu kot decimalno število. | 1, 2,…, 30 |
%b | Skrajšano ime meseca. | Januar, februar,…, december |
%B | Polno mesečno ime. | Januar februar,… |
%m | Mesec kot ničlo podstavljeno decimalno število. | 01, 02,…, 12 |
%-m | Mesec kot decimalno število. | 1, 2,…, 12 |
%y | Leto brez stoletja kot nič oblazinjeno decimalno število. | 00, 01,…, 99 |
%-y | Leto brez stoletja kot decimalno število. | 0, 1,…, 99 |
%Y | Leto s stoletjem kot decimalno število. | 2013, 2019 itd. |
%H | Ura (24-urna ura) kot decimalno število, oblazinjeno z ničlo. | 00, 01,…, 23 |
%-H | Ura (24-urna ura) kot decimalno število. | 0, 1,…, 23 |
%I | Ura (12-urna ura) kot decimalno število, oblazinjeno z ničlo. | 01, 02,…, 12 |
%-I | Ura (12-urna ura) kot decimalno število. | 1, 2,… 12 |
%p | Lokalni AM ali PM. | DOPOLDNE POPOLDNE |
%M | Minuta kot decimalno število, podloženo z ničlo. | 00, 01,…, 59 |
%-M | Minuta kot decimalno število. | 0, 1,…, 59 |
%S | Drugič kot decimalno število, podloženo z ničlo. | 00, 01,…, 59 |
%-S | Drugi kot decimalno število. | 0, 1,…, 59 |
%f | Mikrosekunda kot decimalno število, levo oblazinjeno. | 000000 - 999999 |
%z | UTC odmik v obliki + HHMM ali -HHMM. | |
%Z | Ime časovnega pasu. | |
%j | Dan v letu kot decimalno število, podloženo z ničlo. | 001, 002,…, 366 |
%-j | Dan v letu kot decimalno število. | 1, 2,…, 366 |
%U | Številka tedna v letu (nedelja kot prvi dan v tednu). Vsi dnevi v novem letu pred prvo nedeljo se štejejo za 0. teden. | 00, 01,…, 53 |
%W | Številka tedna v letu (ponedeljek kot prvi dan v tednu). Vsi dnevi v novem letu pred prvim ponedeljkom se štejejo za 0. teden. | 00, 01,…, 53 |
%c | Primerna predstavitev datuma in ure v kraju. | Ponedeljek, 30. september 07:06:05 2013 |
%x | Localeova ustrezna predstavitev datuma. | 30.9.13 |
%X | Localeova ustrezna časovna predstavitev. | 07:06:05 |
%% | Dobesedni znak '%'. | % |
ValueError v strptime ()
Če se niz (prvi argument) in koda oblike (drugi argument), ki sta posredovana strptime()
ne, ne ujemata, boste dobili ValueError
. Na primer:
from datetime import datetime date_string = "12/11/2018" date_object = datetime.strptime(date_string, "%d %m %Y") print("date_object =", date_object)
Če zaženete ta program, se prikaže napaka.
ValueError: časovni podatki '12 / 11/2018 'se ne ujemajo z obliko'% d% m% Y '
Priporočena branja: Python strftime ()