Python strptime () - streng til objekt til datetime

I denne artikel lærer du at oprette et datetime-objekt ud fra en streng (ved hjælp af eksempler).

Den strptime()metode skaber en datetime objekt fra den givne streng.

Bemærk: Du kan ikke oprette datetimeobjekt fra hver streng. Strengen skal have 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 kører programmet, vil output være:

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

Hvordan fungerer strptime ()?

Den strptime()klasse metode tager to argumenter:

  • streng (der konverteres til datetime)
  • formatkode

Baseret på den anvendte streng og formatkode returnerer metoden det tilsvarende datetimeobjekt.

I ovenstående eksempel:

Her,

  • %d- Repræsenterer månedsdagen. Eksempel: 01, 02,…, 31
  • %B- Månedens navn i sin helhed. Eksempel: januar, februar osv.
  • %Y- År med fire cifre. Eksempel: 2018, 2019 osv.

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 kører programmet, vil output være:

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

Formatér kodeliste

Tabellen nedenfor viser alle de formatkoder, du kan bruge.

Direktiv Betyder Eksempel
%a Forkortet navn på hverdag. Søn, man, …
%A Fuldt navn på hverdage. Søndag Mandag,…
%w Ugedag som et decimaltal. 0, 1,…, 6
%d Månedens dag som en nul polstret decimal. 01, 02,…, 31
%-d Månedens dag som et decimaltal. 1, 2,…, 30
%b Forkortet månedsnavn. Jan, Feb,…, Dec
%B Fuld månedens navn. Januar februar,…
%m Måned som et nul-polstret decimaltal. 01, 02,…, 12
%-m Måned som et decimaltal. 1, 2,…, 12
%y År uden århundrede som et nul-polstret decimaltal. 00, 01,…, 99
%-y År uden århundrede som et decimaltal. 0, 1,…, 99
%Y År med århundrede som et decimaltal. 2013, 2019 osv.
%H Time (24-timers ur) som et nul-polstret decimaltal. 00, 01,…, 23
%-H Time (24-timers ur) som et decimaltal. 0, 1,…, 23
%I Time (12-timers ur) som et nul-polstret decimaltal. 01, 02,…, 12
%-I Time (12-timers ur) som et decimaltal. 1, 2,… 12
%p Lokalets AM eller PM. AM, PM
%M Minut som et nul-polstret decimaltal. 00, 01,…, 59
%-M Minut som et decimaltal. 0, 1,…, 59
%S Andet som et nul-polstret decimaltal. 00, 01,…, 59
%-S Andet som et decimaltal. 0, 1,…, 59
%f Mikrosekund som et decimaltal, nul-polstret til venstre. 000000 - 999999
%z UTC-forskydning i form + HHMM eller -HHMM.
%Z Tidszone navn.
%j Årets dag som et nul-polstret decimaltal. 001, 002,…, 366
%-j Årets dag som et decimaltal. 1, 2,…, 366
%U Årets ugenummer (søndag som den første ugedag). Alle dage i et nyt år forud for den første søndag betragtes som i uge 0. 00, 01,…, 53
%W Ugens nummer på året (mandag som den første ugedag). Alle dage i et nyt år forud for den første mandag betragtes som i uge 0. 00, 01,…, 53
%c Lokalens passende dato og klokkeslæt repræsentation. Man 30. september 07:06:05 2013
%x Lokalens passende datorepræsentation. 09/30/13
%X Lokalens passende tidsrepræsentation. 07:06:05
%% En bogstavelig '%' karakter. %

ValueError i strptime ()

Hvis strengen (første argument) og formatkoden (andet argument), der sendes til den strptime(), ikke stemmer overens, får du det 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 kører dette program, får du en fejl.

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

Anbefalede målinger: Python strftime ()

Interessante artikler...