Šiame straipsnyje gerų pavyzdžių pagalba aptarsime laiko modulį ir įvairias šio modulio teikiamas funkcijas.
Kaip rodo pavadinimas, Python laiko modulis leidžia dirbti su laiku Python . Tai leidžia atlikti tokias funkcijas, kaip gauti dabartinį laiką, sustabdyti programos vykdymą ir tt Taigi, prieš pradėdami naudoti šį modulį, turime jį importuoti.
Importuojamas laiko modulis
Laiko modulis pateikiamas su standartiniu Python paslaugų moduliu, todėl nereikia jo įdiegti iš išorės. Mes galime tiesiog importuoti jį naudodami importo pareiškimas .
import time>
Kas yra epocha?
Epocha yra taškas, nuo kurio prasideda laikas ir priklauso nuo platformos. „Windows“ ir daugumoje „Unix“ sistemų epocha yra 1970 m. sausio 1 d., 00:00:00 (UTC), o sekundės neįskaičiuojamos į laiką sekundėmis nuo epochos. Norėdami patikrinti, kokia epocha yra tam tikroje platformoje, galime naudoti laikas.gmtime(0) .
Pavyzdys: Ateina epocha
Kodas naudojatime>modulis rezultatui spausdintitime.gmtime(0)>, kuris reiškia laiką GMT (Grinvičo laikas) laiko juostoje Unix epochoje (1970 m. sausio 1 d., 00:00:00 UTC).
Python3
import> time> print>(time.gmtime(>0>))> |
>
>
Išvestis:
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
Pastaba: Laikas iki epochos vis dar gali būti pavaizduotas sekundėmis, bet jis bus neigiamas. Pavyzdžiui, 1969 m. gruodžio 31 d. bus pavaizduota kaip -86 400 sekundžių.
Gaunamas dabartinis laikas sekundėmis nuo epochos
laikas.laikas() metodai grąžina dabartinį laiką sekundėmis nuo epochos. Jis grąžina slankiojo kablelio skaičių.
Pavyzdys: Dabartinis laikas sekundėmis nuo epochos
Kodas naudojatime>modulis, kad būtų galima gauti dabartinį laiką sekundėmis nuo Unix epochos (1970 m. sausio 1 d.).
Python3
import> time> curr>=> time.time()> print>(>'Current time in seconds since epoch ='>, curr)> |
>
>Išvestis
Current time in seconds since epoch = 1627908387.764925>
Gaunama laiko eilutė iš sekundžių
time.ctime() funkcija grąžina 24 simbolių laiko eilutę, bet kaip argumentą laiko sekundes ir apskaičiuoja laiką iki minėtų sekundžių. Jei argumentas nepraleidžiamas, laikas skaičiuojamas iki dabarties.
Pavyzdys: Gaunama laiko eilutė iš sekundžių
Kodas naudojatime>modulis, skirtas konvertuoti nurodytą laiko žymą (1627908313.717886) į žmogui suprantamą datos ir laiko formatą.
Python3
import> time> curr>=> time.ctime(>1627908313.717886>)> print>(>'Current time:'>, curr)> |
>
>Išvestis
Current time: Mon Aug 2 12:45:13 2021>
Programų vykdymo vėlavimas
Vykdymas gali būti atidėtas naudojant time.sleep() metodas. Šis metodas naudojamas programos vykdymui sustabdyti argumentuose nurodytam laikui.
Pavyzdys: Vėluoja Python programų vykdymo laikas.
Šis kodas naudojatime>modulį, kad įvestumėte vienos sekundės delsą time.sleep(1)> ciklo viduje, kuris kartojasi keturis kartus.
Python3
import> time> for> i>in> range>(>4>):> >time.sleep(>1>)> >print>(i)> |
>
>Išvestis
0 1 2 3>
time.struct_time Class
Struktūros_laikas klasė padeda pasiekti vietinį laiką, t. y. ne epochines laiko žymas. Jis grąžina įvardytą eilutę, kurios reikšmę galima pasiekti tiek indeksu, tiek atributo pavadinimu. Jo objekte yra šie atributai -
| Indeksas | Atributo pavadinimas | Vertybės |
|---|---|---|
| 0 | tm_year | 0000, …, 9999 |
| 1 | tm_mon | 1, 2, …, 11, 12 |
| 2 | tm_mday | 1, 2, …, 30, 31 |
| 3 | tm_valanda | 0, 1, …, 22, 23 |
| 4 | tm_min | 0, 1, …, 58, 59 |
| 5 | tm_sec | 0, 1, …, 60, 61 |
| 6 | tm_wday | 0, 1, …, 6; Sekmadienis yra 6 |
| 7 | tm_yday | 1, 2, …, 365, 366 |
| 8 | tm_isdst | 0, 1 arba -1 |
Šioje klasėje yra įvairių funkcijų. Išsamiai aptarkime kiekvieną funkciją.
laikas.localtime() metodas
vietinis laikas() metodas grąžina objektą struct_time vietiniu laiku. Kaip argumentas naudojamas sekundžių skaičius, praėjęs nuo epochos. Jei sekundžių parametras nenurodytas, naudojamas dabartinis laikas, grąžintas time.time() metodu.
Pavyzdys: Vietos laikas nuo epochos
Kodas naudojatime>modulis, skirtas konvertuoti nurodytą laiko žymą (1627987508.6496193) į time.struct_time> objektas, vaizduojantis atitinkamą datą ir laiką.
kiek 0 iš milijardo
Python3
import> time> obj>=> time.localtime(>1627987508.6496193>)> print>(obj)> |
>
>
Išvestis
time.struct_time(tm_year=2021, tm_mon=8, tm_mday=3, tm_hour=16, tm_min=15, tm_sec=8, tm_wday=1, tm_yday=215, tm_isdst=0)
time.mktime() metodas
time.mktime() yra atvirkštinė laiko funkcija.localtime(), kuri nuo epochos laiką, išreikštą sekundėmis, konvertuoja į time.struct_time objektą vietos laiku.
Pavyzdys: Konvertuojant struct_time priešas sekundėms nuo epochos
Šis kodas pirmiausia naudojatime>modulis, skirtas konvertuoti nurodytą laiko žymą (1627987508.6496193) į time.struct_time> objektas GMT (Grinvičo laikas) laiko juostoje naudojant time.gmtime()> . Tada jis naudoja time.mktime()> tai konvertuoti time.struct_time> objektą grąžinti į laiko žymą.
Python3
import> time> obj1>=> time.gmtime(>1627987508.6496193>)> time_sec>=> time.mktime(obj1)> print>(>'Local time (in seconds):'>, time_sec)> |
>
>Išvestis
Local time (in seconds): 1627987508.0>
time.gmtime() metodas
time.gmtime() naudojamas konvertuoti laiką, išreikštą sekundėmis nuo epochos, į time.struct_time objektą UTC, kuriame tm_isdst atributas visada yra 0. Jei sekundžių parametras nenurodytas, naudojamas laikas, kurį grąžina time.time() metodas.
Pavyzdys: Naudojimas time.gmtime() metodas
Kodas naudojatime>modulis, skirtas konvertuoti nurodytą laiko žymą (1627987508.6496193) į time.struct_time> objektas, vaizduojantis atitinkamą datą ir laiką GMT (Grinvičo laikas) laiko juostoje.
Python3
import> time> obj>=> time.gmtime(>1627987508.6496193>)> print>(obj)> |
>
>
Išvestis
time.struct_time(tm_year=2021, tm_mon=8, tm_mday=3, tm_hour=10, tm_min=45, tm_sec=8, tm_wday=1, tm_yday=215, tm_isdst=0)
time.strftime() metodas
time.strftime() funkcija konvertuoja eilutę arba struct_time, nurodantį laiką, grąžintą gmtime() arba localtime(), į eilutę, kaip nurodyta formato argumentu. Jei t nenurodytas, naudojamas dabartinis laikas, kurį grąžino localtime(). Formatas turi būti eilutė. „ValueError“ padidinama, jei kuris nors t laukas yra už leistino diapazono ribų.
Pavyzdys: Konvertavimas struct_time objektas į eilutę naudojant strftime() metodą
Kodas naudoja gmtime> funkcija ištime>modulį, norėdami konvertuoti nurodytą laiko žymą (1627987508.6496193) į suformatuotą eilutę naudodamistrftime>. Išvestis rodo datą ir laiką GMT (Grinvičo laiko) laiko juostoje formato eilutėje nurodytu formatu.
Python3
rūšiuoti į krūvą
from> time>import> gmtime, strftime> s>=> strftime(>'%a, %d %b %Y %H:%M:%S'>,> >gmtime(>1627987508.6496193>))> print>(s)> |
>
>Išvestis
Tue, 03 Aug 2021 10:45:08>
laikas.asctime() metodas
time.asctime() Metodas naudojamas kortelei arba time.struct_time objektui, vaizduojančiam time.gmtime() arba time.localtime() metodo grąžintą laiką, konvertuoti į šios formos eilutę:
Day Mon Date Hour:Min:Sec Year>
Pavyzdys: Kortelės konvertavimas į time.struct_time objektą į eilutę
Šis kodas naudojatime>modulis, skirtas konvertuoti nurodytą laiko žymą (1627987508.6496193) į žmogui suprantamą datos ir laiko formatą, naudojant time.asctime()> . Tai daroma tiek GMT (Grinvičo laiko) laiko juostoje, tiek vietinėje laiko juostoje.
Python3
import> time> obj>=> time.gmtime(>1627987508.6496193>)> time_str>=> time.asctime(obj)> print>(time_str)> obj>=> time.localtime(>1627987508.6496193>)> time_str>=> time.asctime(obj)> print>(time_str)> |
>
>Išvestis
Tue Aug 3 10:45:08 2021 Tue Aug 3 10:45:08 2021>
time.strptime() metodas
Metodas time.strptime() konvertuoja eilutę, vaizduojančią laiką, į objektą struct_time.
Pavyzdys: Konvertuojama eilutė į struct_time objektas.
Šis kodas naudojatime>modulis, skirtas išanalizuoti suformatuotą eilutę, vaizduojančią datą ir laiką, ir konvertuoti ją į a time.struct_time> objektas. Thetime.strptime()>šiam tikslui naudojama funkcija.
Python3
import> time> string>=> 'Tue, 03 Aug 2021 10:45:08'> obj>=> time.strptime(string,>'%a, %d %b %Y %H:%M:%S'>)> print>(obj)> |
>
>
Išvestis
time.struct_time(tm_year=2021, tm_mon=8, tm_mday=3, tm_hour=10, tm_min=45, tm_sec=8, tm_wday=1, tm_yday=215, tm_isdst=-1)