Kuidas teisendada string datetime'iks Pythonis
Datetime-objektid võimaldavad teha lihtsaid ajalisi arvutusi, sealhulgas intervallide liitmist ja lahutamist. Stringide teisendamine datetime-objektideks on oluline ajaandmete täpseks organiseerimiseks, analüüsimiseks ja kuvamiseks Pythonis.
Kuidas toimib stringide teisendamine datetime’iks Pythonis?
Python-stringi teisendamine datetime’iks hõlmab tekstistringi, mis sisaldab kuupäeva ja/või kellaaega, teisendamist datetime-objektiks. Datetime on Python-andmestruktuur, mis on loodud kuupäeva- ja kellaajaandmete töötlemiseks ja kohandamiseks. Stringide teisendamine datetime’iks on sageli vajalik string-vormingus esinevate kuupäeva- ja kellaajaandmete töötlemiseks.
Andmed teisendatakse formaati, mida saab kasutada muu hulgas arvutuste tegemiseks, kuupäevade võrdlemiseks või ajaandmete vormindamiseks. Meetodid väljendite ühendamiseks Python string-formaadi abil võivad olla kasulikud ka datetime-objektide haldamisel.
Kuidas teisendada stringid datetime-objektideks Pythonis
On olemas mitmesuguseid funktsioone ja mooduleid, näiteks datetime raamatukogu ja strptime() meetod, mida saab kasutada stringide teisendamiseks datetime-objektideks ja vastupidi.
strptime()
datetime raamatukogu meetodit strptime() (string parse time) kasutatakse stringi teisendamiseks Python datetime objektiks. Vaja on kahte argumenti: parsitav string ja stringi kuupäeva/kellaaja formaat.
datetime.strptime(date_string, format)pythondatetime.datetime()
strptime() meetodiga saab stringi teisendada datetime.datetime objektiks, võttes arvesse kindlat kuupäeva/kellaaja formaati.
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:00pythonSelles näites on date_string määratud kui '2023-10-30 12:00:00' ja formaat '%Y-%m-%d %H:%M:%S' määrab järjekorra ja kuupäeva ja kellaaja kuvamise viisi stringis. Meetod strptime() tõlgendab stringi selle formaadi alusel ja genereerib objekti datetime.datetime, mis salvestatakse seejärel muutujasse date_object.
Siin on '%Y-%m-%d %H:%M:%S' tähendus:
%Y: Neljakohaline aasta%m: Kahekohaline kuu%d: Kahekohaline päev%H: Kell (24-tunnine formaat)%M: Minutid%S: Sekundid
datetime.time()
Muutes stringid datetime.time objektiks, saate esitada kellaaja ilma kuupäevata. Seda saab teha, kasutades strptime() meetodit klassist datetime või jagades kellaaja stringi tundideks, minutiteks ja sekunditeks.
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' tähistab formaati tund:minut:sekund. Meetod strptime() tõlgendab aja stringi vastavalt sellele formaadile ja loob objekti datetime.time.
datetime.date()
Alternatiivina võite teisendada stringi datetime.date objektiks, kasutades strptime() meetodit klassist datetime või jagades kuupäeva stringi käsitsi aasta, kuu ja päeva komponentideks.
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' on aasta-kuu-päeva formaat. strptime() meetod analüüsib kuupäeva stringi ja loob datetime.date objekti.
Kuidas lahendada strptime() viga
Kui kasutate Pythonis stringide datetime-objektideks teisendamiseks strptime(), võivad tekkida vead, eriti kui määratud formaat ei vasta sisendstringi formaadile. Siin on mõned levinumad vead ja nende parandamise viisid:
ValueError: time data '...' does not match format '...': See viga tekib, kui sisendstring ei vasta määratud formaadile. Veenduge, etstrptime().ValueError: unconverted data remains: See viga kuvatakse, kui pärast stringi töötlemist jääb alles tõlgendamata andmeid. Veenduge, et formaadimuster hõlmab sisendstringi kõiki osi.TypeError: strptime() argument 1 must be str, not ...: See võib juhtuda, kui parameeter, mis on edastatudstrptime(), ei ole string. Veenduge, et antud väärtus on string, mis sisaldab kuupäeva/kellaaja formaati.
Veenduge, et vormingumuster tõlgendab õigesti kõik sisendstringi osad (aasta, kuu, päev, kellaaeg jne). Samuti on oluline arvestada võimalike erinevustega eraldajate, suurte tähtede ja muude detailide osas vormingumustri ja sisendstringi vahel.