Python strptime () - sträng till datetime-objekt

I den här artikeln lär du dig att skapa ett datetime-objekt från en sträng (med hjälp av exempel).

Den strptime()metod skapar en datetime-objekt från den givna strängen.

Obs! Du kan inte skapa datetimeobjekt från varje sträng. Strängen måste ha ett visst format.

Exempel 1: sträng till 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ör programmet blir resultatet:

 date_string = 21 juni, 2018 typ av date_string = date_object = 2018-06-21 00:00:00 typ av date_object = 

Hur fungerar strptime ()?

Den strptime()klassmetod tar två argument:

  • sträng (som konverteras till datetime)
  • formatera koden

Baserat på den använda strängen och formatkoden returnerar metoden sitt motsvarande datetimeobjekt.

I exemplet ovan:

Här,

  • %d- Representerar månadsdagen. Exempel: 01, 02, …, 31
  • %B- Månadens fullständiga namn. Exempel: januari, februari etc.
  • %Y- År med fyra siffror. Exempel: 2018, 2019 etc.

Exempel 2: sträng till 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ör programmet blir resultatet:

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

Formatera kodlista

Tabellen nedan visar alla formatkoder som du kan använda.

Direktiv Menande Exempel
%a Förkortat veckodagsnamn. Sön, må, …
%A Hela veckodagens namn. Söndag måndag,…
%w Veckodag som ett decimaltal. 0, 1,…, 6
%d Månadens dag som ett nollpolstrat decimal. 01, 02,…, 31
%-d Månadens dag som ett decimaltal. 1, 2,…, 30
%b Förkortat månadsnamn. Jan, feb, …, dec
%B Hela månadens namn. Januari februari,…
%m Månad som ett nollpolstrat decimaltal. 01, 02,…, 12
%-m Månad som decimaltal. 1, 2,…, 12
%y År utan århundrade som ett nollpolstrat decimaltal. 00, 01,…, 99
%-y År utan århundrade som decimaltal. 0, 1,…, 99
%Y År med århundrade som decimaltal. 2013, 2019 etc.
%H Timme (24-timmarsur) som ett nollpolstrat decimaltal. 00, 01,…, 23
%-H Timme (24-timmarsur) som ett decimaltal. 0, 1, …, 23
%I Timme (12-timmarsur) som ett nollpolstrat decimaltal. 01, 02,…, 12
%-I Timme (12-timmarsur) som ett decimaltal. 1, 2, … 12
%p Lokalens AM eller PM. AM PM
%M Minut som ett nollpolstrat decimaltal. 00, 01,…, 59
%-M Minut som decimaltal. 0, 1,…, 59
%S För det andra som ett nollpolstrat decimaltal. 00, 01,…, 59
%-S För det andra som ett decimaltal. 0, 1,…, 59
%f Mikrosekund som ett decimaltal, nollpolstrat till vänster. 000000 - 999999
%z UTC-förskjutning i form + HHMM eller -HHMM.
%Z Tidszonens namn.
%j Årets dag som ett nollpolstrat decimaltal. 001, 002,…, 366
%-j Årets dag som decimaltal. 1, 2,…, 366
%U Årets veckonummer (söndag som första veckodag). Alla dagar i ett nytt år före den första söndagen anses vara i vecka 0. 00, 01,…, 53
%W Årets veckonummer (måndag som första veckodag). Alla dagar i ett nytt år som föregår den första måndagen anses vara i vecka 0. 00, 01,…, 53
%c Lokalens lämpliga datum- och tidsrepresentation. Mån 30 sep 07:06:05 2013
%x Lokalens lämpliga datumrepresentation. 09/30/13
%X Lokalens lämpliga tidsrepresentation. 07:06:05
%% En bokstavlig "%" karaktär. %

ValueError in strptime ()

Om strängen (första argumentet) och formatkoden (andra argumentet) som skickas till den strptime()inte matchar kommer du att få ValueError. Till exempel:

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

Om du kör det här programmet får du ett fel.

 ValueError: tidsdata '12/11/2018' matchar inte formatet '% d% m% Y' 

Rekommenderade avläsningar: Python strftime ()

Intressanta artiklar...