Python - strftime()


Metoda strftime() vraća string koji predstavlja datum i vrijeme koristeći datum, vrijeme ili datum-vrijeme (date, time or datetime) objekt.


Primjer 1: Pretvaranje datetime u string pomoću strftime() metode

Program u nastavku pretvara objekt datetime koji sadrži trenutni datum i vrijeme u različite formate stringova.

from datetime import datetime

now = datetime.now() # Tačan datum i vrijeme

year = now.strftime("%Y")
print("Godina:", year)

month = now.strftime("%m")
print("Mjesec:", month)

day = now.strftime("%d")
print("Dan:", day)

time = now.strftime("%H:%M:%S")
print("Vrijeme:", time)

date_time = now.strftime("%m/%d/%Y, %H:%M:%S")
print("Datum i vrijeme:",date_time)

Ovdje su godina, dan, vrijeme i date_time stringovi, dok je now datetime objekt.



Kako strftime() radi?

U gore navedenom programu, %Y, %m, %d itd. su kodovi formata. Metoda strftime() uzima jedan ili više kodova formata kao argument i vraća oblikovani string na temelju toga.

  1. Importovali smo datetime klasu iz datetime modula. To je zato što objekt klase datetime može pristupiti metodi strftime().



  2. Objekt datetime koji sadrži trenutni datum i vrijeme pohranjen je u varijabli now.



  3. Metoda strftime() se može koristiti za stvaranje formatiranih stringova.



  4. String koji prosljedite metodi strftime() može da sadrži više kodova formata.



Primjer 2: Stvaranje stringa iz vremenske oznake (timestamp)

from datetime import datetime

timestamp = 1528797322
date_time = datetime.fromtimestamp(timestamp)

print("Date time objekt:", date_time)

d = date_time.strftime("%m/%d/%Y, %H:%M:%S")
print("Ispisuje 2:", d) 

d = date_time.strftime("%d %b, %Y")
print("Ispisuje 3:", d)

d = date_time.strftime("%d %B, %Y")
print("Ispisuje 4:", d)

d = date_time.strftime("%I%p")
print("Ispisuje 5:", d)


Lista formata koda

Iduća tabela prikazuje sve kodove koje možete prosljediti u metodu strftime().

Direktiva Značenje Primjer
%a Skraćeni naziv radnog dana. Sun, Mon, ...
%A Puni naziv radnog dana. Sunday, Monday, ...
%w Radni dan kao decimalni broj. 0, 1, ..., 6
%d Dan u mjesecu kao decimalni broj bez nula. 01, 02, ..., 31
%-d Dan u mjesecu kao decimalni broj. 1, 2, ..., 30
%b Skraćeni naziv mjeseca. Jan, Feb, ..., Dec
%B Puni naziv mjeseca. Januar, Februar, ...
%m Mjesec kao decimalni broj s nulom. 01, 02, ..., 12
%-m Mjesec kao decimalni broj. 1, 2, ..., 12
%y Godina bez stoljeća kao decimalni broj bez nula. 00, 01, ..., 99
%-y Godina bez stoljeća kao decimalni broj. 0, 1, ..., 99
%Y Godina sa stoljećem kao decimalnim brojem. 2013, 2019 etc.
%H Sat (24-satni sat) kao decimalni broj s nulom. 00, 01, ..., 23
%-H Sat (24-satni sat) kao decimalni broj. 0, 1, ..., 23
%I Sat (12-satni sat) kao decimalni broj s nulom. 01, 02, ..., 12
%-I Sat (12-satni sat) kao decimalni broj. 1, 2, ... 12
%p Lokalni AM ili PM. AM, PM
%M Minuta kao decimalni broj s nulom. 00, 01, ..., 59
%-M Minuta kao decimalni broj. 0, 1, ..., 59
%S Sekunde kao decimalni broj s nulom. 00, 01, ..., 59
%-S Sekunde kao decimalni broj. 0, 1, ..., 59
%f Milisekunde kao decimalni broj, lijevo s nulom. 000000 - 999999
%z UTC pomak u obliku +HHMM ili -HHMM.
%Z Vrijeme vremenske zone
%j Dan u godini kao decimalni broj s nulom. 001, 002, ..., 366
%-j Dan u godini kao decimalni broj. 1, 2, ..., 366
%U Broj sedmica u godini (nedjelja kao prvi dan u sedmici). Svi dani u novoj godini koji prethode prvoj nedjelji smatraju se u sedmici 0. 00, 01, ..., 53
%W Broj sedmica u godini (ponedjeljak kao prvi dan u sedmici). Svi dani u novoj godini koji prethode prvom ponedjeljku smatraju se sedmicom 0.
%c Prikaz datuma i vremena na odgovarajućoj lokaciji. Mon Sep 29 07:06:05 2021
%x Prikaz datuma na odgovarajućoj lokaciji. 09/29/21
%X Prikazivanje trenutnog vremena. 07:06:05
%% Doslovni karakter '%'. %

Primjer 3: Odgovorajuće lokalno vrijem i datum

from datetime import datetime

timestamp = 1599997322
date_time = datetime.fromtimestamp(timestamp)

d = date_time.strftime("%c")
print("Ispisuje 1:", d) 

d = date_time.strftime("%x")
print("Ispisuje 2:", d)

d = date_time.strftime("%X")
print("Ispisuje 3:", d)

Format koda %c, %x i %X koriste se za prikaz datuma i vremena na odgovarajućoj lokaciji.