Python strftime () - datetime naar string

In dit artikel leert u datum-, tijd- en datetime-objecten converteren naar de equivalente tekenreeks (met behulp van voorbeelden)

De strftime()methode retourneert een tekenreeks die datum en tijd vertegenwoordigt met behulp van date, time of datetime-object.

Voorbeeld 1: datetime naar string met strftime ()

Het onderstaande programma converteert een datetimeobject met de huidige datum en tijd naar verschillende tekenreeksindelingen.

  from datetime import datetime now = datetime.now() # current date and time year = now.strftime("%Y") print("year:", year) month = now.strftime("%m") print("month:", month) day = now.strftime("%d") print("day:", day) time = now.strftime("%H:%M:%S") print("time:", time) date_time = now.strftime("%m/%d/%Y, %H:%M:%S") print("date and time:",date_time) 

Wanneer u het programma uitvoert, zal de uitvoer er ongeveer zo uitzien:

 jaar: 2018 maand: 12 dag: 24 tijd: 04:59:31 datum en tijd: 12/24/2018, 04:59:31 

Hier zijn jaar, dag, tijd en datum_tijd tekenreeksen, terwijl nu een datetimeobject is.

Hoe strftime () werkt?

In het bovenstaande programma, %Y, %m, %detc. zijn formaat codes. De strftime()methode gebruikt een of meer opmaakcodes als argument en retourneert een opgemaakte tekenreeks op basis daarvan.

  1. We hebben datetimeklasse geïmporteerd uit de datetimemodule. Het is omdat het object van de datetimeklasse toegang heeft tot de strftime()methode.
  2. Het datetimeobject met de huidige datum en tijd wordt opgeslagen in de variabele nu.
  3. De strftime()methode kan worden gebruikt om opgemaakte strings te maken.
  4. De tekenreeks die u aan de strftime()methode doorgeeft , kan meer dan één opmaakcode bevatten.

Voorbeeld 2: tekenreeks maken van een tijdstempel

  from datetime import datetime timestamp = 1528797322 date_time = datetime.fromtimestamp(timestamp) print("Date time object:", date_time) d = date_time.strftime("%m/%d/%Y, %H:%M:%S") print("Output 2:", d) d = date_time.strftime("%d %b, %Y") print("Output 3:", d) d = date_time.strftime("%d %B, %Y") print("Output 4:", d) d = date_time.strftime("%I%p") print("Output 5:", d) 

Wanneer u het programma uitvoert, is de uitvoer:

 Datum tijd object: 2018-06-12 09:55:22 Uitgang 2: 06/12/2018, 09:55:22 Uitgang 3:12 juni 2018 Uitgang 4:12 juni 2018 Uitgang 5: 09AM 

Formaat codelijst

In onderstaande tabel staan ​​alle codes die u aan de strftime()methode kunt doorgeven .

Richtlijn Betekenis Voorbeeld
%a Afgekorte weekdagnaam. Zo, ma,…
%A Volledige naam van de weekdag. Zondag maandag,…
%w Weekdag als een decimaal getal. 0, 1, …, 6
%d Dag van de maand als decimaal met nul opgevuld. 01, 02, …, 31
%-d Dag van de maand als decimaal getal. 1, 2, …, 30
%b Afgekorte maandnaam. Jan, feb, …, dec
%B Volledige maandnaam. Januari februari,…
%m Maand als een met nul opgevuld decimaal getal. 01, 02, …, 12
%-m Maand als een decimaal getal. 1, 2, …, 12
%y Jaar zonder eeuw als een met nul opgevuld decimaal getal. 00, 01, …, 99
%-y Jaar zonder eeuw als decimaal getal. 0, 1, …, 99
%Y Jaar met eeuw als decimaal getal. 2013, 2019 enz.
%H Uur (24-uurs klok) als een nul opgevuld decimaal getal. 00, 01, …, 23
%-H Uur (24-uurs klok) als een decimaal getal. 0, 1, …, 23
%I Uur (12-uurs klok) als een nul opgevuld decimaal getal. 01, 02, …, 12
%-I Uur (12-uurs klok) als decimaal getal. 1, 2, … 12
%p Locale is AM of PM. AM PM
%M Minuut als een met nul opgevuld decimaal getal. 00, 01, …, 59
%-M Minuut als een decimaal getal. 0, 1, …, 59
%S Ten tweede als een met nul opgevuld decimaal getal. 00, 01, …, 59
%-S Ten tweede als een decimaal getal. 0, 1, …, 59
%f Microseconde als een decimaal getal, links opgevuld met nul. 000000 - 999999
%z UTC-offset in de vorm + UUMM of -UUMM.
%Z Naam tijdzone.
%j Dag van het jaar als een met nul opgevuld decimaal getal. 001, 002, …, 366
%-j Dag van het jaar als een decimaal getal. 1, 2, …, 366
%U Weeknummer van het jaar (zondag als eerste dag van de week). Alle dagen in een nieuw jaar voorafgaand aan de eerste zondag worden beschouwd als week 0. 00, 01, …, 53
%W Weeknummer van het jaar (maandag als eerste dag van de week). Alle dagen in een nieuw jaar voorafgaand aan de eerste maandag worden beschouwd als week 0. 00, 01, …, 53
%c De juiste weergave van datum en tijd van de locale. Ma 30 september 07:06:05 2013
%x De juiste datumweergave van de locale. 30/09/13
%X De juiste tijdsweergave van de locale. 07:06:05
%% Een letterlijk '%'-teken. %

Voorbeeld 3: de juiste datum en tijd van de landinstelling

  from datetime import datetime timestamp = 1528797322 date_time = datetime.fromtimestamp(timestamp) d = date_time.strftime("%c") print("Output 1:", d) d = date_time.strftime("%x") print("Output 2:", d) d = date_time.strftime("%X") print("Output 3:", d) 

Wanneer u het programma uitvoert, is de uitvoer:

 Uitgang 1: di 12 juni 09:55:22 2018 Uitgang 2: 06/12/18 Uitgang 3: 09:55:22 

Formaatcodes %c, %xen %Xworden gebruikt voor de juiste weergave van datum en tijd van de locale.

We raden je ook aan om Python strptime () te controleren. De strptime()methode maakt een datetimeobject uit een string.

Interessante artikelen...