Kako pretvoriti niz v datum in čas v Pythonu
Objekti datetime omogočajo preproste časovne izračune, vključno z dodajanjem ali odštevanjem intervalov. Pretvarjanje nizov v objekte datetime je bistveno za natančno organiziranje, analiziranje in prikazovanje časovnih podatkov v Pythonu.
Kako deluje pretvorba nizov v datetime v Pythonu?
Pretvorba niza Python v datetime vključuje pretvorbo besedilnega niza, ki vsebuje datum in/ali čas, v objekt datetime. Datetime je podatkovna struktura Python, zasnovana za obdelavo in prilagajanje podatkov o datumu in času. Pretvorba nizov v datetime je pogosto potrebna za obdelavo podatkov o datumu in času, ki se pojavljajo v obliki niza.
Podatki se pretvorijo v format, ki se lahko uporabi za izvajanje izračunov, primerjavo datumov ali oblikovanje časovnih informacij, med drugim. Metode za povezovanje izrazov z uporabo formata niza Python so lahko koristne tudi pri upravljanju objektov datetime.
Kako pretvoriti nize v datetime objekte v Pythonu
Obstajajo različne funkcije in moduli, kot sta knjižnica datetime in metoda strptime(), ki jih lahko uporabite za pretvorbo nizov v datetime objekte in obratno.
strptime()
Metoda strptime() (čas razčlenitve niza) iz knjižnice datetime se uporablja za pretvorbo niza v objekt datetime v Pythonu. Potrebna sta dva argumenta: niz, ki ga je treba razčleniti, in format datuma/časa niza.
datetime.strptime(date_string, format)pythondatetime.datetime()
Z metodo strptime() je mogoče niz pretvoriti v objekt datetime.datetime, pri čemer se upošteva določen format datuma/časa.
from datetime import datetime
date_string = '2023-10-30 12:00:00'
date_object = datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S')
print(date_object) # Output: 2023-10-30 12:00:00pythonV tem primeru je date_string določeno kot '2023-10-30 12:00:00', format '%Y-%m-%d %H:%M:%S' pa določa vrstni red in način prikazovanja datuma in časa v nizu. Metoda strptime() interpretira niz na podlagi tega formata in ustvari objekt datetime.datetime, ki se nato shrani v spremenljivki date_object.
Tukaj je, kaj pomeni '%Y-%m-%d %H:%M:%S':
%Y: štirimestno leto%m: Dvomestni mesec%d: Dvomestni dan%H: Ura (24-urni format)%M: Minute%S: Sekunde
datetime.time()
Z pretvorbo nizov v objekt datetime.time lahko predstavite čas brez datuma. To lahko storite z metodo strptime() iz razreda datetime ali z delitvijo časovnega niza na ure, minute in sekunde.
from datetime import datetime
time_string = '14::30::00'
time_object = datetime.strptime(time_string, '%H::%M::%S').time()
print(time_object) # Output: 14:30:00python'%H:%M:%S' pomeni format ure:minute:sekunde. Metoda strptime() interpretira časovni niz v skladu s tem formatom in ustvari objekt datetime.time.
datetime.date()
Alternativno lahko niz pretvorite v objekt datetime.date z uporabo metode strptime() iz razreda datetime ali z ročnim razdelitvijo niza datuma na komponente leto, mesec in dan.
from datetime import datetime
date_string = '2023-11-30'
date_object = datetime.strptime(date_string, '%Y-%m-%d').date()
print(date_object) # Output: 2023-11-30python'%Y-%m-%d' je format leto-mesec-dan. Metoda strptime() analizira niz datuma in ustvari objekt datetime.date.
Kako odpraviti strptime() napak
Pri uporabi metode strptime() za pretvorbo nizov v datetime objekte v Pythonu lahko naletite na napake, zlasti če navedeni format ne ustreza formatu vhodnega niza. Tukaj je nekaj pogostih napak in načinov za njihovo odpravljanje:
ValueError: time data '...' does not match format '...': Ta napaka se pojavi, če vhodni niz ne ustreza določenemu formatu. Preverite, ali je bil vstrptime()uporabljen pravilni formatni vzorec.ValueError: unconverted data remains: Ta napaka se prikaže, če po obdelavi niza ostanejo neinterpretirani podatki. Preverite, ali formatni vzorec zajema vse dele vhodnega niza.TypeError: strptime() argument 1 must be str, not ...: To se lahko zgodi, če parameter, poslan vstrptime(), ni niz. Preverite, ali je podana vrednost niz, ki vključuje format datuma/časa.
Prepričajte se, da formatni vzorec pravilno interpretira vse dele vhodnega niza (leto, mesec, dan, čas itd.). Pomembno je tudi upoštevati morebitne razlike v ločilih, velikih črkah in drugih podrobnostih med formatnim vzorcem in vhodnim nizom.