Python strptime () - streng til datetime-objekt

I denne artikkelen lærer du å lage et datetime-objekt fra en streng (ved hjelp av eksempler).

Den strptime()metoden skaper en datetime objekt fra den gitte strengen.

Merk: Du kan ikke opprette datetimeobjekt fra hver streng. Strengen må være i et bestemt format.

Eksempel 1: streng til 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)) 

Når du kjører programmet, vil utdataene være:

 date_string = 21. juni 2018 type date_string = date_object = 2018-06-21 00:00:00 type date_object = 

Hvordan fungerer strptime ()?

Den strptime()klassen metoden tar to argumenter:

  • streng (som konverteres til datetime)
  • formatkode

Basert på streng og formatkode som brukes, returnerer metoden det tilsvarende datetimeobjektet.

I eksemplet ovenfor:

Her,

  • %d- Representerer månedsdagen. Eksempel: 01, 02,…, 31
  • %B- Månedens navn i sin helhet. Eksempel: januar, februar osv.
  • %Y- År med fire sifre. Eksempel: 2018, 2019 etc.

Eksempel 2: streng til 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) 

Når du kjører programmet, vil utdataene være:

 dt_object1 = 2018-11-12 09:15:32 dt_object2 = 2018-12-11 09:15:32 

Format kodeliste

Tabellen nedenfor viser alle formatkodene du kan bruke.

Direktiv Betydning Eksempel
%a Forkortet navn på ukedag. Søn, man, …
%A Fullt ukedagsnavn. Søndag Mandag,…
%w Ukedag som desimaltall. 0, 1,…, 6
%d Månedens dag som en null-polstret desimal. 01, 02,…, 31
%-d Månedens dag som et desimaltall. 1, 2,…, 30
%b Forkortet månedsnavn. Jan, Feb,…, Des
%B Fullt månedsnavn. Januar februar,…
%m Måned som et null-polstret desimaltall. 01, 02,…, 12
%-m Måned som desimaltall. 1, 2,…, 12
%y År uten århundre som et null-polstret desimaltall. 00, 01,…, 99
%-y År uten århundre som desimaltall. 0, 1,…, 99
%Y År med århundre som desimaltall. 2013, 2019 etc.
%H Time (24-timers klokke) som et null-polstret desimaltall. 00, 01,…, 23
%-H Time (24-timers klokke) som et desimaltall. 0, 1,…, 23
%I Time (12-timers klokke) som et null-polstret desimaltall. 01, 02,…, 12
%-I Time (12-timers klokke) som et desimaltall. 1, 2,… 12
%p Lokalens AM eller PM. MORGEN KVELD
%M Minutt som et desimaltall uten polstring. 00, 01,…, 59
%-M Minutt som desimaltall. 0, 1,…, 59
%S Andre som et null-polstret desimaltall. 00, 01,…, 59
%-S Andre som et desimaltall. 0, 1,…, 59
%f Mikrosekund som et desimaltall, nullpolstret til venstre. 000000 - 999999
%z UTC-forskyvning i form + HHMM eller -HHMM.
%Z Tidssone navn.
%j Årets dag som et nullpolstret desimaltall. 001, 002,…, 366
%-j Årets dag som desimaltall. 1, 2,…, 366
%U Årets ukenummer (søndag som første ukedag). Alle dager i et nytt år før den første søndagen regnes som å være i uke 0. 00, 01,…, 53
%W Ukens nummer på året (mandag som første ukedag). Alle dager i et nytt år som går før den første mandagen regnes som i uke 0. 00, 01,…, 53
%c Lokalitetens passende dato og klokkeslettrepresentasjon. Man 30. september 07:06:05 2013
%x Lokalens passende datorepresentasjon. 09/30/13
%X Lokalens passende tidsrepresentasjon. 07:06:05
%% En bokstavelig '%' karakter. %

ValueError i strptime ()

Hvis strengen (første argument) og formatkoden (andre argument) som sendes til strptime()ikke stemmer overens, får du ValueError. For eksempel:

  from datetime import datetime date_string = "12/11/2018" date_object = datetime.strptime(date_string, "%d %m %Y") print("date_object =", date_object) 

Hvis du kjører dette programmet, får du en feil.

 ValueError: tidsdata '12/11/2018' samsvarer ikke med formatet '% d% m% Y' 

Anbefalte målinger: Python strftime ()

Interessante artikler...