Časovni modul v Python 3. Glavne metode, predloge, primeri

Skoraj vsak program uporablja čas. V Pythonu je bila za to razvita ločena knjižnica – časuporablja za izvajanje različnih dejanj z njim. Da bi deloval, ga je treba najprej deklarirati na začetku kode. Ta vrstica se uporablja za to:

čas uvoza

Razmislimo o različnih možnostih, kako pravilno uporabiti ta modul v praksi. 

Določanje števila sekund od epohe

Za izpolnitev te naloge obstaja funkcija čas(), ki ne sprejema parametrov. Njegova vrnjena vrednost je, koliko sekund je minilo od 1. januarja 1970. V Pythonu se ta čas imenuje začetek epohe. Vsaj v operacijskih sistemih družine Unix.

Kar zadeva Windows, je datum enak, vendar lahko pride do težav z negativnimi vrednostmi, ki so bile pred tem datumom. 

Uporabljeni časovni pas je UTC.

čas uvoza

sekunde = time.time()

print(“Sekunde od epohe =”, sekunde)

Kompleksnost te funkcije je v tem, da ne prikazuje točno datuma, temveč le število sekund. Za pretvorbo v obliko, ki je znana vsem, morate uporabiti točne podatke. Za to se uporablja funkcija time.ctime().

Vrnitev datuma in časa v običajni obliki

Za vrnitev časa v običajni obliki obstaja metoda time.ctime(). Oklepaji označujejo spremenljivko ali številko, ki označuje število sekund, ki so pretekle od začetka epohe. Ta metoda vrne vse značilnosti datuma in časa, vključno z datumom, letom, številom ur, minutami, sekundami in dnevom v tednu.

To funkcijo je mogoče uporabiti tudi brez argumentov. V tem primeru vrne trenutni datum, uro itd.

Tukaj je delček kode, ki to prikazuje.

čas uvoza

natisni(time.ctime())

Torek, 23. oktober 10:18:23 2018

Zadnja vrstica je tisto, kar se natisne na konzolo, kjer se izvaja tolmač Python. Metoda samodejno formatira prejeto število sekund v uporabniku poznano obliko. Res je, da se vsi zgoraj opisani elementi redko uporabljajo. Praviloma morate dobiti samo čas ali samo današnji datum. Za to se uporablja ločena funkcija – strftime(). Toda preden razmislimo o tem, moramo razred razčleniti čas.struktura_čas.

čas razreda.struct_time

To je kategorija argumentov, ki jih je mogoče sprejeti z različnimi metodami. Nima nobenih možnosti. To je zbirka z imenovanim vmesnikom. Preprosto povedano, do elementov tega razreda je mogoče dostopati tako po imenu kot po indeksni številki.

Sestavljen je iz naslednjih atributov.Časovni modul v Python 3. Glavne metode, predloge, primeri

Pozor! Za razliko od številnih drugih programskih jezikov je tukaj lahko mesec v razponu od 1 do 12 in ne od nič do 11.

Vrnitev določenega formata

Uporaba funkcije strftime() posamezno lahko dobite leto, mesec, dan, uro, minute, sekunde in jih vrnete v besedilni niz. Nato se lahko natisne uporabniku s funkcijo natisni () ali drugače obdelan.

Kot argument lahko funkcija sprejme katero koli spremenljivko, ki sprejme vrednost, ki jo vrnejo druge funkcije tega modula. Nanj lahko na primer prenesete lokalni čas (o njem bomo razpravljali kasneje), iz katerega bo izvlekel potrebne podatke.

Tukaj je delček kode, kjer to počnemo.

čas uvoza

named_tuple = time.localtime() # pridobi struct_time

time_string = time.strftime(«%m/%d/%Y, %H:%M:%S», imenovana_tuple)

natisni (časovni_niz)

Če zaženete to kodo, bosta prikazana trenutni datum in čas. Format in zaporedje elementov je mogoče spremeniti. So naslednji:

  1. %Y je leto.
  2. %m je mesec.
  3. %d – dan.
  4. %H – čas.
  5. %M – minute.
  6. %S – sekunda.

V skladu s tem lahko naredite tako, da je izhod izključno mesec in dan. Če želite to narediti, vam preprosto ni treba dati ukaza za prikaz leta. Se pravi, zapišite v zgornjo formulo kot argument %m/%d in to je to. Ali obratno, %d/%m. 

Pravzaprav je število nizovnih literalov veliko večje. Tukaj je tabela, kjer so podrobno opisani.Časovni modul v Python 3. Glavne metode, predloge, primeri

Odložite nit za določeno število sekund

Za to se uporablja funkcija spati (). Precej velik blok programskih nalog je povezan s potekom časa. Včasih moraš naslednji korak odložiti za določen čas. Na primer, če morate komunicirati z bazo podatkov, katere obdelava traja določen čas.

Metoda kot argument uporablja vrednost, ki izraža število sekund za zakasnitev naslednjega koraka iz algoritma.

Na primer, v tem izrezku je zakasnitev 10 sekund.

čas uvoza

premor = 10

natisni ("Program se je začel …")

time.sleep(pause)

print(str(pavza) + » pretekle sekunde.»)

Kot rezultat bomo dobili tole:

Program se je začel …

Minilo je 10 sekund.

Kot lahko vidimo iz izpisa, program najprej sporoči, da se je zagnal. In po desetih sekundah je napisala, da je ta čas minil.

Funkcija vam omogoča, da določite trajanje premora v milisekundah. Za to uporabimo delne vrednosti argumenta funkcije spat. Na primer 0,1. To pomeni, da bo zakasnitev 100 milisekund.

Pridobite lokalni čas

S funkcijo localtime() dobi program število sekund od začetka epohe v določenem časovnem pasu. 

Za jasnost navedimo primer kode.

čas uvoza

rezultat = time.localtime(1575721830)

print(“rezultat:”, rezultat)

print(«ngod:», rezultat.tm_leto)

print(«tm_hour:», rezultat.tm_hour)

Vrni struct_time v UTC glede na število sekund od epohe

Ta naloga se doseže z uporabo time.gmtime(). metoda. Bolj jasno bo, če navedemo primer.

čas uvoza

rezultat = time.gmtime(1575721830)

print(“rezultat:”, rezultat)

print(«ngod:», rezultat.tm_leto)

print(«tm_hour:», rezultat.tm_hour)

Če vklopite to zaporedje dejanj, bo prikazan nabor elementov, povezanih s časom, letom in časovnim pasom.

Vrnite število sekund od začetka epohe s samodejno pretvorbo v lokalni čas

Če se soočite s takšno nalogo, se izvaja z metodo mktime(), ki traja struct_time. Po tem izvede obratno dejanje funkcije lokalni čas(). To pomeni, da pretvori čas glede na lokalni časovni pas v število sekund, ki so pretekle od začetka epohe, prilagojeno časovnemu pasu.

Funkciji mktime() in localtime() sta tesno prepleteni. Ta delček kode to jasno prikazuje. Oglejmo si ga, da bomo globlje razumeli, kako deluje. 

čas uvoza

sekund = 1575721830

# vrne struct_time

t = time.localtime(sekunde)

natisni («t1: «, t)

# vrne sekunde iz struct_time

s = time.mktime(t)

natisni («ns:», sekunde)

Vidimo, da spremenljivka sekund je bilo dodeljenih 1575721830 sekund od epohe. Najprej program dobi točen datum, uro in druge parametre, ki jih na podlagi te vrednosti vnese v spremenljivko tin nato pretvori njeno vsebino v spremenljivko s.

Po tem premakne novo vrstico in prikaže število sekund v konzoli. Lahko preverite, ali bo to isto število, ki je bilo dodeljeno spremenljivki sekund.

Izhodni datum iz 9 števil, ki se nanašajo na struct_time

Recimo, da imamo 9 številk, ki predstavljajo leto, mesec, datum, dan v tednu in številne druge vrednosti, in jih moramo združiti v en niz. Za to se uporablja funkcija asctime(). Sprejme ali pripravljena struct_time, ali katera koli druga torka 9 vrednosti, ki pomeni isto. Po tem se vrne niz, ki je datum, čas in številni drugi parametri. 

Zelo priročno je uporabiti to metodo, da različne podatke, ki jih določi uporabnik, spravite v eno spremenljivko..

Lahko je na primer program, kjer uporabnik posebej določi dan, mesec, leto, dan v tednu in druge podatke v zvezi s prijavo na dogodek. Nato se prejeti podatki vnesejo v bazo podatkov in nato izdajo drugi osebi, ki jih zahteva.

Pridobivanje časa in datuma na podlagi niza Python

Recimo, da je uporabnik navedel različne podatke in jih moramo združiti v eno vrstico v obliki, ki jo je oseba vnesla, nato pa narediti kopijo v drugo spremenljivko in jo tam znova sestaviti v standardno obliko. Za to se uporablja funkcija čas.strptime().

Vzame spremenljivko, v kateri je podana ta vrednost, in vrne že znano vrednost struct_time.

Zaradi jasnosti bomo napisali tak program.

čas uvoza

time_string = «15. junij 2019»

rezultat = čas.strptime(časovni_niz, «%d %B, %Y»)

natisni (rezultat)

Uganete, kakšen bo rezultat? Poskusite uganiti, ne da bi pogledali spodnjo vrstico. In nato preverite odgovor.

time.struct_time(tm_year=2019, tm_mon=6, tm_mday=15, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=166, tm_isdst=-1)

Z eno besedo, delo z datumi in časi v Pythonu sploh ni težko. Dovolj je, da sledite tem navodilom, in vse se bo izšlo. Uporaba knjižnice čas uporabnik dobi ogromno možnosti za delo s časom, kot so:

  1. Začasno ustavite izvajanje programa za določen čas.
  2. Pokažite čas, ki je pretekel od epohe, v sekundah. Te informacije se lahko uporabijo za seštevanje časa ali za izvajanje drugih matematičnih operacij.
  3. Pretvori v priročno obliko. Poleg tega lahko programer sam nastavi, kateri elementi bodo prikazani in v kakšnem zaporedju. 

Obstaja tudi vrsta drugih možnosti, a danes smo analizirali najbolj osnovne. Prav bodo prišli v skoraj vsakem programu, ki tako ali drugače deluje s časom. Vso srečo.

Pustite Odgovori