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ýsledku time.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.
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 z time> 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
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. The time.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)