Python strptime () - virkne uz datuma objektu

Šajā rakstā jūs iemācīsities izveidot datuma objektu no virknes (ar piemēru palīdzību).

strptime()Metode rada datetime objektu no konkrētā virknes.

Piezīme. Nevar izveidot datetimeobjektu no katras virknes. Virknei jābūt noteiktā formātā.

1. piemērs: virkne uz datuma objektu

  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)) 

Palaidot programmu, izeja būs:

 date_string = 2018. gada 21. jūnijs date_string = date_object = 2018-06-21 00:00:00 date_object tips = 

Kā strptime () darbojas?

strptime()Klases metodi veic divus argumentus:

  • virkne (kas jāpārvērš datuma laikā)
  • formāta kods

Pamatojoties uz izmantoto virkni un formāta kodu, metode atgriež līdzvērtīgu datetimeobjektu.

Iepriekš minētajā piemērā:

Šeit,

  • %d- Pārstāv mēneša dienu. Piemērs: 01, 02,…, 31
  • %B- Mēneša nosaukums pilnībā. Piemērs: janvāris, februāris utt.
  • %Y- gads ar četriem cipariem. Piemērs: 2018., 2019. gads utt.

2. piemērs: virkne uz datuma objektu

  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) 

Palaidot programmu, izeja būs:

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

Formatēt kodu sarakstu

Zemāk esošajā tabulā ir parādīti visi formātu kodi, kurus varat izmantot.

Direktīva Nozīme Piemērs
%a Saīsināts darba dienas nosaukums. Sv, pirmdien,…
%A Pilns darba dienas nosaukums. Svētdien, pirmdien,…
%w Nedēļas diena kā decimālskaitlis. 0, 1,…, 6
%d Mēneša diena kā nulles aizpildīta decimāldaļa. 01, 02,…, 31
%-d Mēneša diena kā decimālskaitlis. 1, 2,…, 30
%b Saīsināts mēneša nosaukums. Jan, Feb,…, Dec
%B Pilna mēneša nosaukums. Janvāris Februāris,…
%m Mēnesis kā nulles aizpildīts decimālskaitlis. 01, 02,…, 12
%-m Mēnesis kā decimālskaitlis. 1, 2,…, 12
%y Gads bez gadsimta kā nulles aizpildīts decimālskaitlis. 00, 01,…, 99
%-y Gads bez gadsimta kā decimālskaitlis. 0, 1,…, 99
%Y Gads ar gadsimtu kā decimālskaitli. 2013., 2019. gads utt.
%H Stunda (24 stundu pulkstenis) kā nulles aizpildīts decimālskaitlis. 00, 01,…, 23
%-H Stunda (24 stundu pulkstenis) kā decimālskaitlis. 0, 1,…, 23
%I Stunda (12 stundu pulkstenis) kā nulles aizpildīts decimālskaitlis. 01, 02,…, 12
%-I Stunda (12 stundu pulkstenis) kā decimālskaitlis. 1, 2,… 12
%p Lokalizācijas AM vai PM. AM, PM
%M Minūte kā nulles aizpildīts decimālskaitlis. 00, 01,…, 59
%-M Minūte kā cipars aiz komata. 0, 1,…, 59
%S Otrais kā nulles aizpildīts decimālskaitlis. 00, 01,…, 59
%-S Otrais kā decimālskaitlis. 0, 1,…, 59
%f Mikrosekunde kā decimālskaitlis, pa kreisi aizpildīts ar nulli. 000000 - 999999
%z UTC nobīde formā + HHMM vai -HHMM.
%Z Laika joslas nosaukums.
%j Gada diena kā nulles aizpildīts decimālskaitlis. 001, 002,…, 366
%-j Gada diena kā decimālskaitlis. 1, 2,…, 366
%U Gada nedēļas numurs (svētdiena kā nedēļas pirmā diena). Visas dienas jaunā gadā pirms pirmās svētdienas tiek uzskatītas par 0. nedēļā. 00, 01,…, 53
%W Gada nedēļas numurs (pirmdiena kā nedēļas pirmā diena). Visas dienas jaunā gadā pirms pirmās pirmdienas tiek uzskatītas par 0. nedēļā. 00, 01,…, 53
%c Lokalizācijas atbilstošs datuma un laika attēlojums. Pirmdiena, 30. septembris, 07:06:05, 2013
%x Lokalizācijas atbilstošā datuma attēlojums. 30.09.13
%X Lokalizācijas atbilstošs laika attēlojums. 07:06:05
%% Burtisks '%' raksturs. %

ValueError strptime ()

Ja virkne (pirmais arguments) un formāta kods (otrais arguments), kas tiek nodota strptime()neatbilst, jūs saņemsiet ValueError. Piemēram:

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

Ja palaidīsit šo programmu, tiks parādīta kļūda.

 ValueError: laika dati '12 / 11/2018 'neatbilst formātam'% d% m% Y ' 

Ieteicamie lasījumi: Python strftime ()

Interesanti raksti...