Ebben a cikkben megtanulja a dátum, az idő és a dátum és idő objektumokat annak megfelelő karakterláncra konvertálni (példák segítségével)
A strftime()
metódus a dátumot és az időt ábrázoló karakterláncot ad vissza a dátum, az idő vagy a dátum és idő objektum használatával.
1. példa: dátumidő karakterláncra az strftime () használatával
Az alábbi program az datetime
aktuális dátumot és időt tartalmazó objektumot különböző karakterlánc-formátumokká konvertálja.
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)
A program futtatásakor a kimenet valami hasonló lesz:
év: 2018 hónap: 12 nap: 24 idő: 04:59:31 dátum és idő: 2018.12.24., 04:59:31
Itt az év, a nap, az idő és a dátum_idő karakterlánc, míg a most egy datetime
objektum.
Hogyan működik az strftime ()?
A fenti program %Y
, %m
, %d
stb formátum kódok. A strftime()
módszer egy vagy több formátumkódot vesz fel argumentumként, és ez alapján egy formázott karakterláncot ad vissza.
datetime
Osztályt importáltunk adatetime
modulból. Ez azért van, mert azdatetime
osztály objektuma hozzáférhet astrftime()
metódushoz.- Az
datetime
aktuális dátumot és időt tartalmazó objektum a most változóban tárolódik. - A
strftime()
módszer formázott karakterláncok létrehozására használható. - A
strftime()
metódusnak átadott karakterlánc több formátumkódot is tartalmazhat.
2. példa: Karaktersorozat létrehozása időbélyegből
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)
A program futtatásakor a kimenet a következő lesz:
Dátum és idő objektum: 2018-06-12 09:55:22 2. kimenet: 2018.06.06., 09:55:22 3. kimenet: 2018. június 12.: kimenet 2018. június 4.: 12 .: kimenet: 5.00
Kódlista formázása
Az alábbi táblázat bemutatja az összes kódot, amelyet átadhat a strftime()
módszernek.
Irányelv | Jelentése | Példa |
%a | Rövidített hétköznapi név. | V, H,… |
%A | Teljes hétköznapi név. | Vasárnap hétfő,… |
%w | Hétköznap decimális számként. | 0, 1,…, 6 |
%d | A hónap napja nulla betétes tizedesjegyként. | 01, 02,…, 31 |
%-d | A hónap napja decimális számként. | 1., 2.,…, 30. |
%b | Rövidített havi név. | Jan, február,…, dec |
%B | Teljes hónap neve. | Január február,… |
%m | Hónap nulla betétes decimális számként. | 01, 02,…, 12 |
%-m | A hónap decimális számként. | 1., 2.,…, 12. |
%y | Század nélküli év nulla betétes tizedesszámként. | 00, 01,…, 99 |
%-y | Év század nélkül, tizedes számként. | 0, 1,…, 99 |
%Y | Év, évszázad tizedesjegyként. | 2013, 2019 stb. |
%H | Óra (24 órás óra) nulla betétes decimális számként. | 00, 01,…, 23 |
%-H | Óra (24 órás óra) tizedes számként. | 0, 1,…, 23 |
%I | Óra (12 órás óra) nulla betétes decimális számként. | 01, 02,…, 12 |
%-I | Óra (12 órás óra) decimális számként. | 1., 2., 12. |
%p | A területi beállítás: AM vagy PM. | DÉLELŐTT DÉLUTÁN |
%M | Perc nulla betétes decimális számként. | 00, 01,…, 59 |
%-M | Perc decimális számként. | 0, 1,…, 59 |
%S | Másodszor, nulla betétes decimális számként. | 00, 01,…, 59 |
%-S | Második tizedes számként. | 0, 1,…, 59 |
%f | Mikroszekundum decimális számként, balra nulla betétes. | 000000 - 999999 |
%z | UTC eltolás + HHMM vagy -HHMM alakban. | |
%Z | Időzóna neve. | |
%j | Az év napja nulla betétes tizedes számként. | 001, 002,…, 366 |
%-j | Az év napja decimális számként. | 1, 2,…, 366 |
%U | Az év heti száma (vasárnap, mint a hét első napja). Az első vasárnapot megelőző új év minden napja a 0. hétnek tekintendő. | 00, 01,…, 53 |
%W | Az év heti száma (hétfő, mint a hét első napja). Az első hétfőt megelőző új év minden napja a 0. hétnek tekintendő. | 00, 01,…, 53 |
%c | A területi beállítás megfelelő dátum és idő ábrázolása. | 2013. szeptember 30., hétfő, 07:06:05 |
%x | A területi beállítás megfelelő dátumábrázolása. | 2013. 09. 30. |
%X | A nyelv megfelelő időbeli ábrázolása. | 07:06:05 |
%% | Szó szerinti „%” karakter. | % |
3. példa: A területi beállítás megfelelő dátuma és ideje
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)
A program futtatásakor a kimenet a következő lesz:
1. kimenet: kedd, június 12. 09:55:22, 2018 2. kimenet: 18.06.12., 3. kimenet: 09:55:22
Formátumkódok %c
, %x
és %X
használják a területi beállítások megfelelő dátum és idő ábrázolására.
Javasoljuk továbbá a Python strptime () ellenőrzését. A strptime()
módszer egy datetime
objektumot hoz létre egy karakterláncból.