tartalom
- Az epocha óta eltelt másodpercek számának meghatározása
- Dátum, idő visszaadása a szokásos formátumban
- osztályidő.struct_time
- Adott formátum visszaadása
- Halasszon el egy szálat egy bizonyos számú másodpercre
- Szerezze be a helyi időt
- A struct_time értéket adja vissza UTC-ben az epocha óta eltelt másodpercek száma alapján
- A korszak kezdete óta eltelt másodpercek számának visszaállítása a helyi időre való automatikus konvertálással
- Kimeneti dátum 9 számból, amelyek a struct_time-re utalnak
- Idő és dátum lekérése Python karakterlánc alapján
Szinte minden program időt használ. A Pythonban erre külön könyvtárat fejlesztettek ki – időkülönféle műveletek végrehajtására szolgál vele. Ahhoz, hogy működjön, először deklarálni kell a kód elején. Ez a sor erre szolgál:
import idő
Tekintsünk különböző lehetőségeket a modul helyes gyakorlati használatára.
Az epocha óta eltelt másodpercek számának meghatározása
Ennek a feladatnak a végrehajtásához van egy funkció idő(), amely nem vesz paramétereket. A visszatérési értéke az, hogy hány másodperc telt el 1. január 1970-je óta. A Pythonban ezt az időt egy korszak kezdetének nevezik. Legalábbis a Unix család operációs rendszereiben.
Ami a Windowst illeti, a dátum ugyanaz, de problémák adódhatnak a dátum előtti negatív értékekkel.
A használt időzóna UTC.
import idő
másodperc = idő.idő()
print ("Epocha óta eltelt másodpercek =", másodperc)
Ennek a funkciónak az a bonyolultsága, hogy nem pontosan a dátumot, hanem csak a másodpercek számát jeleníti meg. A mindenki számára ismert formátumra való konvertáláshoz pontos információkat kell használnia. Ehhez a funkciót használják time.ctime().
Dátum, idő visszaadása a szokásos formátumban
Az idő szokásos formátumban való visszaküldésére van egy módszer time.ctime(). A zárójelben a korszak kezdete óta eltelt másodpercek számát jelző változót vagy számot jelöljük. Ez a módszer minden dátum- és időjellemzőt visszaad, beleértve a dátumot, évet, órák számát, perceket, másodperceket és a hét napját.
Ez a függvény argumentumok nélkül is használható. Ebben az esetben visszaadja az aktuális dátumot, időt és így tovább.
Itt van egy kódrészlet, amely ezt demonstrálja.
import idő
print(time.ctime())
23. október 10. kedd, 18:23:2018
Az utolsó sor az, ami ki van nyomtatva arra a konzolra, ahol a Python interpreter fut. A metódus a kapott másodpercszámot automatikusan a felhasználó által ismert űrlapra formázza. Igaz, a fent leírt összes elemet ritkán használják. Általános szabály, hogy vagy csak az időt, vagy csak a mai dátumot kell megadnia. Ehhez egy külön funkciót használnak – strftime(). De mielőtt belegondolnánk, elemezni kell az osztályt time.struct_time.
osztályidő.struct_time
Ez az érvek olyan kategóriája, amely számos módszerrel elfogadható. Nincsenek választási lehetőségei. Ez egy elnevezett interfész tuple. Egyszerűen fogalmazva, ennek az osztálynak az elemei név és indexszám alapján is elérhetők.
A következő attribútumokból áll.
Figyelem! Számos más programozási nyelvtől eltérően itt a hónap 1-től 12-ig terjedhet, és nem nullától 11-ig.
Adott formátum visszaadása
A funkció használata strftime () az évet, a hónapot, a napot, az órát, a percet, a másodpercet külön-külön megkaphatja, és visszaadhatja őket egy szöveges karakterláncba. Ezután a funkció segítségével kinyomtatható a felhasználónak nyomtatás () vagy más módon feldolgozva.
Argumentumként egy függvény bármely olyan változót vehet fel, amely a modul más függvényei által visszaadott értéket veszi fel. Például átteheti rá a helyi időt (erről később lesz szó), amiből kihúzza a szükséges adatokat.
Itt található a kódrészlet, ahol ezt csináljuk.
import idő
named_tuple = time.localtime() # get struct_time
time_string = time.strftime(«%m/%d/%Y, %H:%M:%S», elnevezett_sor)
print(time_string)
Ha ezt a kódot futtatja, megjelenik az aktuális dátum és idő. Az elemek formátuma és sorrendje módosítható. Ezek a következők:
- %Y az év.
- %m a hónap.
- %d – nap.
- %H – idő.
- %M – perc.
- %S – második.
Ennek megfelelően megteheti, hogy a kimenet kizárólag a hónap és a nap adatait tartalmazza. Ehhez egyszerűen nem kell parancsot adni az év megjelenítéséhez. Vagyis írja be a fenti képletbe argumentumként %m/%d, és kész. Vagy fordítva, %d/%m.
Valójában a karakterlánc-literálok száma sokkal nagyobb. Itt van egy táblázat, ahol részletesen le vannak írva.
Halasszon el egy szálat egy bizonyos számú másodpercre
Ehhez a funkciót használják aludni (). A programozási feladatok meglehetősen nagy blokkja kapcsolódik az idő múlásához. Néha el kell halasztani a következő lépést egy bizonyos időre. Például, ha olyan adatbázissal kell kapcsolatba lépnie, amelynek feldolgozása bizonyos ideig tart.
Argumentumként a metódus olyan értéket használ, amely azt fejezi ki, hogy hány másodpercben késlelteti az algoritmus következő lépését.
Például ebben a részletben a késleltetés 10 másodperc.
import idő
szünet = 10
print ("A program elindult...")
idő.alvás (szünet)
print(str(pause) + » másodperc telt el.»)
Ennek eredményeként ezt kapjuk:
A program elindult…
10 másodperc telt el.
Amint a kimenetből láthatjuk, a program először jelzi, hogy elindult. És tíz másodperc múlva azt írta, hogy ez az idő eltelt.
A funkció lehetővé teszi a szünet időtartamának ezredmásodpercben történő megadását. Ehhez a függvény argumentumának tört értékeit használjuk alvás. Például 0,1. Ez azt jelenti, hogy a késleltetés 100 ezredmásodperc lesz.
Szerezze be a helyi időt
A localtime() függvény segítségével a program lekéri, hogy egy adott időzónában hány másodperc telt el az epocha kezdete óta.
Adjunk egy példakódot az érthetőség kedvéért.
import idő
eredmény = time.localtime(1575721830)
print ("eredmény:", eredmény)
print(«nгод:», eredmény.tm_év)
print(«tm_óra:», eredmény.tm_óra)
A struct_time értéket adja vissza UTC-ben az epocha óta eltelt másodpercek száma alapján
Ez a feladat a time.gmtime() használatával érhető el. módszer. Világosabb lesz, ha példát adunk.
import idő
eredmény = time.gmtime(1575721830)
print ("eredmény:", eredmény)
print(«nгод:», eredmény.tm_év)
print(«tm_óra:», eredmény.tm_óra)
Ha bekapcsolja ezt a műveletsort, akkor az időhöz, évhez és időzónához kapcsolódó elemek halmaza jelenik meg.
A korszak kezdete óta eltelt másodpercek számának visszaállítása a helyi időre való automatikus konvertálással
Ha ilyen feladattal szembesül, azt a módszerrel valósítjuk meg mktime (), amelyre szükség van struct_time. Ezt követően a funkció fordított műveletét hajtja végre helyi idő(). Vagyis a helyi időzóna szerinti időt az időzónához igazítva az epocha kezdete óta eltelt másodpercek számává alakítja át.
Az mktime() és localtime() függvények szorosan összefonódnak. Ez a kódrészlet egyértelműen ezt mutatja. Vessünk egy pillantást rá, hogy mélyebben megértsük, hogyan működik.
import idő
másodperc = 1575721830
# a struct_time értéket adja vissza
t = idő.helyi idő (másodperc)
print(«t1: «, t)
# másodperceket ad vissza a struct_time értékből
s = idő.mktime(t)
print(«ns:», másodperc)
Látjuk, hogy a változó másodperc az epocha óta 1575721830 másodpercet rendeltek hozzá. Először a program megkapja a pontos dátumot, időt és egyéb paramétereket, ez alapján az értéket változóba helyezi t, majd annak tartalmát változóvá alakítja s.
Ezután egy új sort üt ki, és megjeleníti a másodpercek számát a konzolon. Ellenőrizheti, hogy ugyanaz a szám lesz-e, mint ami a másodperces változóhoz volt hozzárendelve.
Kimeneti dátum 9 számból, amelyek a struct_time-re utalnak
Tegyük fel, hogy van 9 számunk, amelyek az évet, hónapot, dátumot, a hét napját és számos más értéket jelölik, és ezeket egy karakterláncba kell egyesítenünk. Ehhez a funkciót használják asctime(). Elfogadja vagy kész struct_time, vagy bármely más 9 értékből álló sor, amely ugyanazt jelenti. Ezt követően egy karakterláncot ad vissza, amely dátum, idő és számos egyéb paraméter.
Nagyon kényelmes ennek a módszernek a használata annak érdekében, hogy a felhasználó által megadott eltérő adatokat egyetlen változóba hozzuk..
Például lehet olyan program, ahol a felhasználó külön megadja a napot, a hónapot, az évet, a hét napját és az eseményre való regisztrációhoz kapcsolódó egyéb adatokat. Ezt követően a kapott információk bekerülnek az adatbázisba, majd kiadják egy másik személynek, aki azt kéri.
Idő és dátum lekérése Python karakterlánc alapján
Tegyük fel, hogy a felhasználó eltérő adatokat adott meg, és ezeket egy sorba kell egyesítenünk a személy által megadott formátumban, majd másolatot kell készítenünk egy másik változóba, és ott újra kell építeni egy szabványos formátumba. Ehhez a funkciót használják time.strptime().
Elvesz egy változót, amelyben ez az érték meg van adva, és visszaadja a már ismertet struct_time.
Az érthetőség kedvéért írunk egy ilyen programot.
import idő
time_string = «15. június 2019.»
eredmény = time.strptime(time_string, «%d %B, %Y»)
nyomtatás (eredmény)
Kitalálja, mi lesz a kimenet? Próbáljon kitalálni anélkül, hogy az alsó sort nézné. És akkor ellenőrizze a választ.
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=15, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=166, tm_isdst=-1)
Egyszóval a dátumokkal és időpontokkal való munka Pythonban egyáltalán nem nehéz. Elég követni ezeket az utasításokat, és minden rendben lesz. A könyvtár használata idő a felhasználó rengeteg lehetőséget kap az idővel való munkavégzéshez, például:
- A program végrehajtásának felfüggesztése meghatározott időre.
- A korszak óta eltelt idő megjelenítése másodpercben. Ez az információ felhasználható az idő összegzésére vagy egyéb matematikai műveletek végrehajtására.
- Átalakítás kényelmes formátumba. Ezenkívül a programozó maga állíthatja be, hogy mely elemek és milyen sorrendben jelenjenek meg.
Számos más lehetőség is létezik, de ma a legalapvetőbbeket elemeztük. Szinte minden olyan programban jól jönnek, amely valahogyan működik az idővel. Sok szerencsét.