logo

Python Time Module

V tomto článku budeme diskutovat o časovém modulu a různých funkcích, které tento modul poskytuje, pomocí dobrých příkladů.

Jak název napovídá, časový modul Pythonu umožňuje pracovat s časem Krajta . Umožňuje funkce, jako je získání aktuálního času, pozastavení provádění programu atd. Než tedy začneme s tímto modulem, musíme jej naimportovat.

Import časového modulu

Časový modul je dodáván se standardním obslužným modulem Pythonu, takže jej není třeba instalovat externě. Můžeme jej jednoduše importovat pomocí importní prohlášení .



import time>

Co je epocha?

Epocha je bod, kde začíná čas a závisí na platformě. Na Windows a většině unixových systémů je epocha 1. leden 1970, 00:00:00 (UTC) a přestupné sekundy se nezapočítávají do času v sekundách od epochy. Ke kontrole, jaká je epocha na dané platformě, můžeme použít time.gmtime(0) .

Příklad: Získání epochy

Kód používátime>modul pro tisk výsledkutime.gmtime(0)>, což představuje čas v časovém pásmu GMT (Greenwich Mean Time) v epoše Unixu (1. ledna 1970, 00:00:00 UTC).

Python3




import> time> print>(time.gmtime(>0>))>

>

>

Výstup:

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)

Poznámka: Čas před epochou může být stále znázorněn v sekundách, ale bude záporný. Například 31. prosinec 1969 bude reprezentován jako -86400 sekund.

Získání aktuálního času v sekundách od epochy

time.time() metody vracejí aktuální čas v sekundách od epochy. Vrací číslo s plovoucí desetinnou čárkou.

Příklad: Aktuální čas v sekundách od epochy

Kód používátime>modul pro načtení aktuálního času v sekundách od epochy Unixu (1. ledna 1970).

Python3




import> time> curr>=> time.time()> print>(>'Current time in seconds since epoch ='>, curr)>

>

>

Výstup

Current time in seconds since epoch = 1627908387.764925>

Získání časového řetězce ze sekund

time.ctime() Funkce vrací 24znakový časový řetězec, ale jako argument bere sekundy a počítá čas do uvedených sekund. Pokud není předán žádný argument, čas se počítá do současnosti.

Příklad: Získání časového řetězce ze sekund

Kód používátime>modul pro převod zadaného časového razítka (1627908313.717886) do formátu data a času čitelného člověkem.

Python3




import> time> curr>=> time.ctime(>1627908313.717886>)> print>(>'Current time:'>, curr)>

>

>

Výstup

Current time: Mon Aug 2 12:45:13 2021>

Odkládání provádění programů

Provedení může být odloženo pomocí time.sleep() metoda. Tato metoda se používá k zastavení provádění programu na dobu uvedenou v argumentech.

Příklad: Zpoždění doby provádění programů v Pythonu.

Tento kód používátime>modul zavést jednosekundové zpoždění pomocí time.sleep(1)> uvnitř smyčky, která se čtyřikrát opakuje.

Python3




import> time> for> i>in> range>(>4>):> >time.sleep(>1>)> >print>(i)>

>

>

Výstup

0 1 2 3>

time.struct_time Třída

Struct_time třída pomáhá získat přístup k místnímu času, tj. k neepochálním časovým razítkům. Vrací pojmenovanou n-tici, k jejíž hodnotě lze přistupovat pomocí indexu i názvu atributu. Jeho objekt obsahuje následující atributy –

Index Název atributu Hodnoty
0 tm_year 0000, …, 9999
1 tm_mon 1, 2, …, 11, 12
2 tm_mday 1, 2, …, 30, 31
3 tm_hour 0, 1, …, 22, 23
4 tm_min 0, 1, …, 58, 59
5 tm_sec 0, 1, …, 60, 61
6 tm_wday 0, 1, …, 6; neděle je 6
7 tm_yday 1, 2, …, 365, 366
8 tm_isdst 0, 1 nebo -1

Tato třída obsahuje různé funkce. Pojďme diskutovat o každé funkci podrobně.

metoda time.localtime().

místní čas() metoda vrací objekt struct_time v místním čase. Jako argument bere počet sekund uplynulých od epochy. Pokud parametr sekund není zadán, použije se aktuální čas vrácený metodou time.time().

Příklad: Získání místního času z epochy

Kód používátime>modul pro převod zadaného časového razítka (1627987508.6496193) na time.struct_time> objekt představující odpovídající datum a čas.

jtlačítko

Python3




import> time> obj>=> time.localtime(>1627987508.6496193>)> print>(obj)>

>

>

Výstup

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)

metoda time.mktime().

time.mktime() je inverzní funkce time.localtime(), která převádí čas vyjádřený v sekundách od epochy na objekt time.struct_time v místním čase.

Příklad: Konverze struct_time objekt na sekundy od epochy

Tento kód nejprve používátime>modul pro převod zadaného časového razítka (1627987508.6496193) na time.struct_time> objekt v časovém pásmu GMT (Greenwich Mean Time) pomocí time.gmtime()> . Poté používá time.mktime()> toto převést time.struct_time> objekt zpět do časového razítka.

Python3




import> time> obj1>=> time.gmtime(>1627987508.6496193>)> time_sec>=> time.mktime(obj1)> print>(>'Local time (in seconds):'>, time_sec)>

>

>

Výstup

Local time (in seconds): 1627987508.0>

metoda time.gmtime().

time.gmtime() se používá k převodu času vyjádřeného v sekundách od epochy na objekt time.struct_time v UTC, ve kterém je atribut tm_isdst vždy 0. Pokud parametr sekund není zadán, použije se aktuální čas vrácený metodou time.time().

Příklad: Použití time.gmtime() metoda

Kód používátime>modul pro převod zadaného časového razítka (1627987508.6496193) na time.struct_time> objekt představující odpovídající datum a čas v časovém pásmu GMT (Greenwich Mean Time).

Python3




import> time> obj>=> time.gmtime(>1627987508.6496193>)> print>(obj)>

>

>

Výstup

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)

metoda time.strftime().

time.strftime() funkce převede n-tici nebo struct_time reprezentující čas vrácený gmtime() nebo localtime() na řetězec určený argumentem format. Pokud t není zadáno, použije se aktuální čas vrácený localtime(). Formát musí být řetězec. Hodnota ValueError je vyvolána, pokud je jakékoli pole v t mimo povolený rozsah.

Příklad: Konverze struct_time objekt na řetězec pomocí metody strftime().

Kód používá gmtime> funkce ztime>modul pro převod zadaného časového razítka (1627987508.6496193) na formátovaný řetězec pomocístrftime>. Výstup představuje datum a čas v časovém pásmu GMT (Greenwich Mean Time) ve formátu určeném formátovacím řetězcem.

Python3




'kruskalův algoritmus'
from> time>import> gmtime, strftime> s>=> strftime(>'%a, %d %b %Y %H:%M:%S'>,> >gmtime(>1627987508.6496193>))> print>(s)>

>

>

Výstup

Tue, 03 Aug 2021 10:45:08>

metoda time.asctime().

time.asctime() metoda se používá k převodu n-tice nebo objektu time.struct_time představující čas vrácený metodou time.gmtime() nebo time.localtime() na řetězec následujícího tvaru:

Day Mon Date Hour:Min:Sec Year>

Příklad: Převod n-tice na objekt time.struct_time na řetězec

Tento kód používátime>modul pro převod zadaného časového razítka (1627987508.6496193) do formátu data a času čitelného člověkem pomocí time.asctime()> . Činí tak pro časové pásmo GMT (Greenwich Mean Time) i místní časové pásmo.

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

>

>

Výstup

Tue Aug 3 10:45:08 2021 Tue Aug 3 10:45:08 2021>

metoda time.strptime().

Metoda time.strptime() převede řetězec představující čas na objekt struct_time.

Příklad: Převod řetězce na struct_time objekt.

Tento kód používátime>modul analyzovat formátovaný řetězec představující datum a čas a převést jej na a time.struct_time> objekt. Thetime.strptime()>k tomuto účelu slouží funkce.

Python3




import> time> string>=> 'Tue, 03 Aug 2021 10:45:08'> obj>=> time.strptime(string,>'%a, %d %b %Y %H:%M:%S'>)> print>(obj)>

>

>

Výstup

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)