logo

Python laiko modulis

Š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)