Dátum és idő: a datetime modul
Ha úgy érzed, hogy elakadtál, és több segítségre van szükséged, keress bizalommal! Kedvező árú magánórák keretében szívesen segítek elsajátítani a programozás alapjait.
Magánóra ajánlatokAmikor saját programokat készítünk, időnként szükségünk lehet arra, hogy a programunk ismerje az aktuális dátumot, vagy az aktuális időt - például azért, hogy eldöntsük, melyik tennivalónak járt már le a határideje, vagy épp hány nappal ezelőtt történt egy esemény. Erre a Python datetime modulját használhatjuk. Mivel ez egy önálló modul, így fontos, hogy ha használni szeretnénk, akkor a programunk elején először be kell azt importálnunk az alábbi kódsor elhelyezésével:
import datetime
Ezt követően már kezdhetjük is vele a munkát!
Aktuális időpont lekérdezése
Ahhoz, hogy megtudhassuk a mai dátumot, vagy az aktuális időt, a datetime.datetime.now() utasítást használjuk. Ez visszaad egy datetime típusú objektumot, benne az aktuális időponttal. Ha ezt egy változóban letároljuk, utána könnyedén kinyerhetjük belőle azokat a részeket (pl.: órát, vagy percet), amire épp szükségünk van!
most = datetime.datetime.now()
Ezt követően könnyedén kinyerhetjük a letárolt objektumunkból a keresett információt:
| Paraméter | Leírás |
|---|---|
most.year | A most változóban letárolt időpont évszám része |
most.month | A most változóban letárolt időpont hónap része |
most.day | A most változóban letárolt időpont nap része |
most.hour | A most változóban letárolt időpont óra része |
most.minute | A most változóban letárolt időpont perc része |
most.second | A most változóban letárolt időpont másodperc része |
Ezek használatát bemutatja az alábbi kódrészlet:
import datetime
most = datetime.datetime.now()
print("Ma a", most.year,". év ", most.month, ". hónapjának", most.day,". napja van!")
print("Az aktuális idő", most.hour, "óra", most.minute, "perc", most.second, "másodperc.")
if most.hour <= 12:
print("Jelenleg délelőtt van.")
else:
print("Jelenleg délután van.")
Próbáld ki magad is! Nézd át a cikkünkhöz tartozó mintakódot - szerkeszd és futtasd közvetlenül a böngésződben, az info9
LineFlame fejlesztőeszközével!
Időpont formázása szövegként az strftime függvénnyel
Bár a fentebbi módszert használva könnyedén átalakíthatjuk az aktuális időpontot bármilyen formátumúvá, a pythonnak van egy beépített függvénye, az strftime (string from time, vagyis szöveg időpontból), amelyet kifejezetten ennek a problémának a hatékony megoldására találtak ki. Ha egy datetime objektumon (pl.: a fentebbi példa "most" nevű változóján) meghívjuk az strftime utasítást, megadhatunk neki egy mintát, hogy milyen formátumú szöveggé szeretnénk alakítani a benne található dátumot. Ebben a mintában felhasználhatjuk például az alábbi jelölőket:
| Jelölő | Jelentése | Jelölő | Jelentése |
|---|---|---|---|
| %Y | év 4 számjeggyel | %y | év utolsó 2 számjegye |
| %m | hónap sorszáma | %B | hónap neve |
| %d | hónap napja | %w | hét napja (0 = vasárnap) |
| %H | óra 24 órás formátumban | %h | óra 12 órás formátumban |
| %M | perc | %p | AM vagy PM (12 órás formátumhoz) |
| %S | másodperc | %f | miliszekundum (ezred másodperc) |
| %W | hányadik hét az évben (hétfővel kezdődő hetek) | %j | hányadik nap az évben |
Ezekből a jelölőkből összeállíthatjuk a saját dátumformátumainkat! Íme néhány példa, amelyek 2026. március 5. 12:30:07 időpont alapján készültek:
| Formátum szöveg | Kimenet | Megjegyzés |
|---|---|---|
%Y.%m.%d. | 2026.03.05. | Dátum megjelenítése a "magyarországi" formátumban |
%H:%M:%S | 12:30:07 | Időpont megjelenítése a "magyarországi" formátumban |
%Y, %W. hét | 2026, 10. hét | Évszám és a hét számának megjelenítése |
Ezt a függvényt akár közvetlenül egy print-ben is elhelyezhetjük! Az alábbi mintaprogram például abban segít, hogy megtudhassuk, hányadik hét van jelenleg:
import datetime
most = datetime.datetime.now()
print(most.strftime("%Y. év %W. hete van"))
Próbáld ki magad is! Nézd át a cikkünkhöz tartozó mintakódot - szerkeszd és futtasd közvetlenül a böngésződben, az info9
LineFlame fejlesztőeszközével!
Egyéni dátum objektumok létrehozása
Ha dátumokkal, időpontokkal szeretnénk számításokat végezni, erre is használható a datetime modul. Azon kívül, hogy lekérdezzük a jelenlegi időpontot, létrehozhatunk saját datetime objektumokat is konkrét dátum és időpont megadásával. Ha szeretnénk a fentebbi 2026. március 5. 12:30:07 időpontot letárolni, használhatjuk az alábbi kódsort:
idopont = datetime.datetime(2026, 3, 5, 12, 30, 7)
Amennyiben van több datetime objektumunk, használhatjuk rajtuk a kivonás operátort a köztük eltelt idő meghatározására. Ekkor egy timedelta objektumot kapunk eredményül, amelynek a days, valamint seconds tulajdonságai megadják a két időpont közt eltelt teljes napok, valamint az azon felül eltelt másodpercek számát. Íme egy példa:
import datetime
most = datetime.datetime.now()
idopont = datetime.datetime(2026, 3, 5, 12, 30, 7)
kulonbseg = most - idopont
print("Az időpont óta", kulonbseg.days, "nap és", kulonbseg.seconds ,"másodperc telt el.")
Próbáld ki magad is! Nézd át a cikkünkhöz tartozó mintakódot - szerkeszd és futtasd közvetlenül a böngésződben, az info9
LineFlame fejlesztőeszközével!
Egyéni dátumok létrehozásakor az alábbi paramétereket használhatjuk: