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)