Python DateTime, TimeDelta, Strftime(Format) példákkal
⚡ Okos összefoglaló
Python A datetime modul a date, time és timedelta osztályokkal együtt objektumként kezeli a dátumokat, időpontokat és intervallumokat. A datetime modul az strftime() függvénnyel formázza a kimenetet, elemzi a karakterláncokat, és timedelta aritmetika segítségével kiszámítja a jövőbeli vagy múltbeli pillanatokat.

In Python, dátum, idő és dátumidő osztályok számos függvényt biztosítanak a dátumok, időpontok és időintervallumok kezelésére. Dátum és dátum/idő a Python objektumok, tehát amikor manipulálod őket, valójában objektumokat manipulálsz, nem pedig karakterláncokat vagy időbélyegeket. Amikor dátumokat vagy időt manipulálsz, importálnod kell a datetime modult.
A dátum és idő osztályok Python 5 fő kategóriába sorolhatók.
- dátum – Csak dátum manipulálása (hónap, nap, év)
- idő – a naptól független idő (óra, perc, másodperc, mikroszekundum)
- datetime – az idő és a dátum kombinációja (hónap, nap, év, óra, másodperc, mikroszekundum)
- timedelta – A dátumok manipulálására használt időtartam
- tzinfo— Egy hasizmoktract osztály az időzónák kezeléséhez
A Dátum és DateTime osztály használata
1 lépés) Mielőtt futtatná a dátum-idő formátum kódját Python, fontos, hogy importálja a Python dátum és idő modulokat az alábbi képernyőképen látható módon.
Ezek az importálási utasítások előre meghatározott funkciói a Python könyvtár, amely lehetővé teszi a dátumok és idők kezelését kód írása nélkül.
A végrehajtás előtt vegye figyelembe a következő pontokat Python dátum és idő formátum kódja
from datetime import date
Ez a sor elmondja a Python tolmács a dátum osztály importálásához a datetime modulból PythonNem mi írjuk a dátumfunkció kódját, hanem egyszerűen importáljuk a saját használatra.
Dátum nyomtatása a date.today() használatával
A date.today() függvényhez számos tulajdonság tartozik. Kinyomtathatjuk vele az egyes napokat/hónapokat/éveket és sok más dolgot is.
Lássunk egy példát
A mai hétköznap száma
A date.today() függvény a hét napjának számát is megadja. Itt látható a hét napjainak táblázata, amely a következővel kezdődik: Monday 0-ként, vasárnap pedig 6-ként.
| Nap | Hétnapok száma |
|---|---|
| Monday | 0 |
| Kedd | 1 |
| Szerda | 2 |
| csütörtök | 3 |
| Péntek | 4 |
| Szombat | 5 |
| vasárnap | 6 |
A Weekday Number olyan tömböknél hasznos, amelyek indexe a hét napjától függ.
2 lépés) Ezután létrehozzuk a dátum objektum egy példányát.
3 lépés) Ezután kinyomtatjuk a dátumot és futtatjuk a kódot.
A kimenet a vártnak megfelelő.
Python Aktuális dátum és idő: most() ma()
Step 1) A dátumobjektumokhoz hasonlóan szintén használhatjuk „DATETIME OBJECTS” in Python. Python A dátum és idő objektumok dátumot adnak meg az idővel együtt óra, perc, másodperc és ezredmásodperc.
Amikor végrehajtjuk a datetime kódot, akkor az aktuális dátumot és időt adja meg.
Step 2) A „DATETIME OBJECT” használatával az időosztályt is meghívhatjuk. Tegyük fel, hogy csak az aktuális időt szeretnénk kinyomtatni dátum nélkül.
t = datetime.time(datetime.now())
- Importáltuk az időosztályt. Az aktuális időértéket a datetime.now() segítségével rendeljük hozzá.
- Az aktuális idő értékét a t változóhoz rendeljük.
És ez csak az időm lesz. Tehát futtassuk ezt a programot.
Oké, láthatod, hogy itt megvan a dátum és az idő. A következő sorban pedig csak az idő van meg.
Step 3) A hétköznapi indexelőnket a hétköznapok tömblistájára fogjuk alkalmazni, hogy megtudjuk, melyik nap van ma.
- A hétköznapok operátora (wd) egy (0-6) közötti számot kap attól függően, hogy mi az aktuális hétköznap. Itt deklaráltuk a napok (Hétfő, Kedd, Szerda…Vasárnap) listájának tömbjét.
- Használja ezt az indexértéket, hogy megtudja, melyik nap van. Esetünkben ez a #2, és a szerdát jelöli, így a kimenetben a következőt írja ki: „Melyik szerda”.
Itt található a teljes kód az aktuális dátum és idő lekérdezéséhez a datetime most használatával
from datetime import date from datetime import time from datetime import datetime def main(): ##DATETIME OBJECTS #Get today's date from datetime class today=datetime.now() #print (today) # Get the current time #t = datetime.time(datetime.now()) #print "The current time is", t #weekday returns 0 (monday) through 6 (sunday) wd=date.weekday(today) #Days start at 0 for monday days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"] print("Today is day number %d" % wd) print("which is a " + days[wd]) if __name__== "__main__": main()
A dátum és időkimenet formázása az Strftime() segítségével
Eddig megtanultuk, hogyan kell használni a datetime és a date függvényeket. tárgy be Python. Egy lépéssel tovább lépünk, és megtanuljuk, hogyan kell formázási funkciót használni az idő és a dátum formázására.
Step 1) Először egy egyszerű lépést fogunk látni az év formázásához. Jobb megérteni egy példával.
- Mi használtuk a „strftime függvény” formázáshoz.
- Ez a funkció mást használ vezérlő kód kimenetet adni.
- Minden vezérlőkód különböző paraméterekhez hasonlít, például évhez, hónaphoz, naphoz és dátumhoz. [(%y/%Y – év), (%a/%A- hétköznap), (%b/%B- hónap), (%d – hónap napja)] .
- A mi esetünkben az ("%Y") amely évszámra hasonlít, a teljes évet a századdal együtt nyomtatja ki (pl. 2018).
Step 2) Ha most lecseréli ("%Y") kisbetűre, azaz ( "%y"), és végrehajtja a kódot, a kimenet csak (18) jelenik meg, és nem (2018). Az év évszázada nem az alábbi képernyőképen látható módon jelenik meg
Step 3) Az Strf függvény külön-külön deklarálhatja a dátumot, a napot, a hónapot és az évet. Az strftime függvény vezérlőkódjának apró módosításával a szöveg stílusát is formázhatjuk.
Az strftime függvényen belül, ha a (%a) részt nagybetűs A-val helyettesítjük, azaz (%A), akkor a kimenet „Péntek” formátumban jelenik meg a csak „Péntek” rövidítés helyett.
Step 4) Az „Strftime” funkció segítségével a helyi rendszeridőt, dátumot vagy mindkettőt is lekérhetjük.
- %C- a helyi dátumot és időt jelzi
- %x- a helyi dátumot jelöli
- %X- a helyi időt jelzi
A kimenetben a várt eredmény látható
Step 5) Az „strftime funkció” lehetővé teszi, hogy bármilyen formátumban lehívja az időt 24 vagy 12 órán keresztül.
Csak a vezérlőkód megadásával, például %I/H órára, % M percre, %S másodpercre, különböző formátumokhoz hívható idő
12 óra idő deklarálva [print now.strftime("%I:%M:%S %p) ]
24 óra idő deklarálva [print now.strftime(“%H:%M”)]
Itt található a teljes kód a datetime String objektummá konvertálásához.
# #Example file for formatting time and date output # from datetime import datetime def main(): #Times and dates can be formatted using a set of predefined string #Control codes now= datetime.now() #get the current date and time #%c - local date and time, %x-local's date, %X- local's time print(now.strftime("%c")) print(now.strftime("%x")) print(now.strftime("%X")) ##### Time Formatting #### #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM print(now.strftime("%I:%M:%S %p")) # 12-Hour:Minute:Second:AM print(now.strftime("%H:%M")) # 24-Hour:Minute if __name__== "__main__": main()
Miben van a Timedelta? Python?
Timedelta be Python egy olyan objektum, amely az időtartamot jelöli. Főleg két dátum és időpont közötti időtartam kiszámítására használják. Arra is használják, hogy az objektumot valamilyen delta dátummal és időponttal lekérjék. A timedelta objektum támogatja a matematikai műveleteket, mint az összeadások, a részösszetevők.tracszorzás, osztás stb.
A Timedelta objektumok használata
A Python timedelta objektumok, megbecsülheti az időt a jövőre és a múltra egyaránt. Más szóval, ez egy időintervallum bármely különleges nap, dátum vagy idő előrejelzésére.
Ne feledje, hogy ez a funkció nem az idő vagy a dátum kinyomtatására szolgál, hanem a jövő vagy a múlt KISZÁMÍTÁSÁRALássunk egy Python timedelta példa, hogy jobban megértsük.
Step 1) A Timedelta Objects futtatásához először deklarálnia kell az import utasítást, majd végre kell hajtania a kódot
- Írjon importálási nyilatkozatot a timedelta számára
- Most írja be a kódot az objektum idődeltából történő kinyomtatásához, ahogy a képernyőképen látható
- Futtassa a kódot. Az idődelta 365 nap, 8 óra és 15 perc időtartamot jelent, és ugyanazt nyomtatja
Zavaró? A következő lépés segít
Step 2) Nézzük meg a mai dátumot és időt, hogy ellenőrizzük, jól működik-e az importálási nyilatkozatunk. Amikor a kód végrehajtódik, kiírja a mai dátumot, ami azt jelenti, hogy az importálási utasításunk jól működik
Step 3) Meglátjuk, hogyan tudjuk lekérni a dátumot egy év múlva a delta objektumok segítségével. Amikor lefuttatjuk a kódot, a várt kimenetet adja.
Step 4) Egy másik példa arra, hogy az idő delta hogyan használható a jövőbeli dátum kiszámítására az aktuális dátumból és időből
Step 5) Nézzünk egy bonyolultabb példát. Szeretném meghatározni, hány nappal múlt el az újév. Így járunk el
- A Today= date.today() használatával megkapjuk a mai dátumot
- Tudjuk, hogy az újév mindig január 1-jén van, de az év más is lehet. A nyd= date(ma.év,1,1) használatával az új évet az nyd változóban tároljuk
- if nyd < today: összehasonlítja, hogy az aktuális dátum későbbi-e, mint az újév. Ha igen, akkor belép a while ciklusba.
- ((ma-nyd).days) megadja az aktuális dátum és az új év közötti különbséget DAYS-ben
A kimenet azt mutatja, hogy „Az újév napja már 11 nappal ezelőtt eltelt”.
Itt van a teljes működő kód
# # Example file for working with timedelta objects # from datetime import date from datetime import time from datetime import datetime from datetime import timedelta # construct a basic timedelta and print it print (timedelta(days=365, hours=8, minutes=15)) # print today's date print ("today is: " + str(datetime.now())) # print today's date one year from now print ("one year from now it will be:" + str(datetime.now() + timedelta(days=365))) # create a timedelta that uses more than one argument # print (in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4))) # How many days until New Year's Day? today = date.today() # get todays date nyd = date(today.year, 1, 1) # get New Year Day for the same year # use date comparison to see if New Year Day has already gone for this year # if it has, use the replace() function to get the date for next year if nyd < today: print ("New Year day is already went by %d days ago" % ((today - nyd).days))
Python 2 Példa
A következő példák ugyanazokat a dátum- és időműveleteket mutatják be, amelyeket a következőhöz írtak: Python 2, ahol a print egy utasítás, nem pedig függvény. Ezeket a verziókat csak akkor használjuk, ha régi verziót szeretnénk fenntartani. Python 2 kód.
from datetime import date from datetime import time from datetime import datetime def main(): ##DATETIME OBJECTS #Get today's date from datetime class today=datetime.now() #print today # Get the current time #t = datetime.time(datetime.now()) #print "The current time is", t #weekday returns 0 (monday) through 6 (sunday) wd = date.weekday(today) #Days start at 0 for monday days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"] print "Today is day number %d" % wd print "which is a " + days[wd] if __name__== "__main__": main()
# #Example file for formatting time and date output # from datetime import datetime def main(): #Times and dates can be formatted using a set of predefined string #Control codes now= datetime.now() #get the current date and time #%c - local date and time, %x-local's date, %X- local's time print now.strftime("%c") print now.strftime("%x") print now.strftime("%X") ##### Time Formatting #### #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM print now.strftime("%I:%M:%S %p") # 12-Hour:Minute:Second:AM print now.strftime("%H:%M") # 24-Hour:Minute if __name__== "__main__": main()
# # Example file for working with timedelta objects # from datetime import date from datetime import time from datetime import datetime from datetime import timedelta # construct a basic timedelta and print it print timedelta(days=365, hours=8, minutes=15) # print today's date print "today is: " + str(datetime.now()) # print today's date one year from now print "one year from now it will be:" + str(datetime.now() + timedelta(days=365)) # create a timedelta that uses more than one argument # print "in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4)) # How many days until New Year's Day? today = date.today() # get todays date nyd = date(today.year, 1, 1) # get New Year Day for the same year # use date comparison to see if New Year Day has already gone for this year # if it has, use the replace() function to get the date for next year if nyd < today: print "New Year day is already went by %d days ago" % ((today - nyd).days)



















