Hvordan konvertere en streng til dato og klokkeslett i Python
Datetime-objekter gjør det mulig å utføre enkle tidsberegninger, inkludert å legge til eller trekke fra intervaller. Konvertering av strenger til datetime-objekter er avgjørende for å organisere, analysere og vise tidsdata nøyaktig i Python.
Hvordan fungerer konvertering av strenger til dato og klokkeslett i Python?
Konvertering av en Python-streng til datetime innebærer å transformere en tekststreng, som inneholder en dato og/eller tid, til et datetime-objekt. Datetime er en Python-datastruktur som er utviklet for å håndtere og justere dato- og tidsinformasjon. Konvertering av strenger til datetime er ofte nødvendig for å håndtere dato- og tidsdata som vises i strengformat.
Dataene konverteres til et format som kan brukes til å utføre beregninger, sammenligne datoer eller formatere tidsinformasjon, blant annet. Metoder for å sammenføye uttrykk ved hjelp av Python-strengformat kan også være nyttige når du håndterer datetime-objekter.
Hvordan konvertere strenger til datetime-objekter i Python
Det finnes ulike funksjoner og moduler, for eksempel datetime og strptime(), som du kan bruke til å konvertere strenger til datetime-objekter og omvendt.
strptime()
Metoden strptime() (string parse time) fra biblioteket datetime brukes til å konvertere en streng til et Python datetime-objekt. To argumenter er nødvendige: strengen som skal parses og dato-/tidsformatet til strengen.
datetime.strptime(date_string, format)pythondatetime.datetime()
Med metoden strptime() kan en streng konverteres til et objekt datetime.datetime, med hensyn til et spesifikt dato-/tidsformat.
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:00pythonI dette eksemplet er date_string angitt som '2023-10-30 12:00:00', og formatet '%Y-%m-%d %H:%M:%S' definerer rekkefølgen og hvordan dato og klokkeslett skal vises i strengen. Metoden strptime() tolker strengen basert på dette formatet og genererer et datetime.datetime, som deretter lagres i variabelen date_object.
Her er hva '%Y-%m-%d %H:%M:%S' betyr:
%Y: Fire-sifret årstall%m: To-sifret måned%d: Tosifret dag%H: Time (24-timersformat)%M: Minutter%S: Sekunder
datetime.time()
Ved å konvertere strenger til et datetime.time kan du representere klokkeslett uten dato. Dette kan gjøres ved hjelp av strptime() fra datetime, eller ved å dele en tidsstreng inn i timer, minutter og sekunder.
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' står for formatet timer:minutter:sekunder. Metoden strptime() tolker tidsstrengen i henhold til dette formatet og oppretter et datetime.time -objekt.
datetime.date()
Alternativt kan du omforme en streng til et datetime.date objekt ved å bruke strptime() fra datetime, eller ved å manuelt dele datostrengen inn i år, måned og dag.
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' er formatet år-måned-dag. Metoden strptime() analyserer datostrengen og oppretter et datetime.date -objekt.
Hvordan feilsøke strptime() feil
Når du bruker strptime() for å konvertere strenger til datetime-objekter i Python, kan du støte på feil, spesielt hvis det angitte formatet ikke samsvarer med formatet på inndatastrengen. Her er noen vanlige feil og måter å løse dem på:
ValueError: time data '...' does not match format '...': Denne feilen oppstår hvis inndatastrengen ikke samsvarer med det angitte formatet. Kontroller at riktig formatmønster ble brukt istrptime().ValueError: unconverted data remains: Denne feilen vises hvis det gjenstår ufortolkede data etter at strengen er behandlet. Kontroller at formatmønsteret dekker alle deler av inndatastrengen.TypeError: strptime() argument 1 must be str, not ...: Dette kan skje hvis parameteren som sendes tilstrptime()ikke er en streng. Kontroller at den angitte verdien er en streng som inkluderer dato-/tidsformatet.
Du bør sørge for at formatmønsteret tolker alle deler av inndatastrengen (år, måned, dag, klokkeslett osv.) riktig. Det er også viktig å ta hensyn til mulige forskjeller i skilletegn, store bokstaver og andre detaljer mellom formatmønsteret og inndatastrengen.