Aikamoduuli Python 3:ssa. Päämenetelmät, mallit, esimerkit

Melkein mikä tahansa ohjelma käyttää aikaa. Pythonissa tätä varten on kehitetty erillinen kirjasto – aikakäytetään suorittamaan erilaisia ​​toimintoja sen kanssa. Jotta se toimisi, se on ensin ilmoitettava koodin alussa. Tätä riviä käytetään tähän:

tuontiaika

Pohditaan erilaisia ​​vaihtoehtoja, kuinka tätä moduulia käytetään oikein käytännössä. 

Epookista kuluneiden sekuntien määrän määrittäminen

Tämän tehtävän suorittamiseksi on toiminto aika(), joka ei vaadi parametreja. Sen palautusarvo on se, kuinka monta sekuntia on kulunut 1. tammikuuta 1970. Pythonissa tätä aikaa kutsutaan aikakauden alkamiseksi. Ainakin Unix-perheen käyttöjärjestelmissä.

Mitä tulee Windowsiin, päivämäärä on sama, mutta negatiivisissa arvoissa, jotka olivat ennen tätä päivämäärää, voi olla ongelmia. 

Käytetty aikavyöhyke on UTC.

tuontiaika

sekuntia = aika.aika()

tulosta ("Sekuntia aikakaudesta =", sekuntia)

Tämän toiminnon monimutkaisuus on, että se ei näytä tarkalleen päivämäärää, vaan vain sekuntien määrän. Jotta voit muuntaa kaikille tuttuihin muotoihin, sinun on käytettävä tarkkoja tietoja. Tätä varten käytetään toimintoa aika.ctime().

Päivämäärän ja ajan palautus tavallisessa muodossa

Ajan palauttamiseksi tavallisessa muodossa on menetelmä aika.ctime(). Suluissa on muuttuja tai luku, joka ilmaisee sekuntien määrän, joka on kulunut aikakauden alusta. Tämä menetelmä palauttaa kaikki päivämäärän ja ajan ominaisuudet, mukaan lukien päivämäärän, vuoden, tuntien lukumäärän, minuutit, sekunnit ja viikonpäivän.

Tätä funktiota voidaan käyttää myös ilman argumentteja. Tässä tapauksessa se palauttaa nykyisen päivämäärän, kellonajan ja niin edelleen.

Tässä on koodinpätkä, joka osoittaa tämän.

tuontiaika

tulosta(aika.ctime())

ti 23. lokakuuta 10:18:23 2018

Viimeinen rivi on se, mikä tulostetaan konsoliin, jossa Python-tulkki on käynnissä. Menetelmä muotoilee vastaanotetun sekuntimäärän automaattisesti käyttäjän tutulle lomakkeelle. Totta, kaikkia yllä kuvattuja elementtejä käytetään harvoin. Yleensä sinun on saatava joko vain aika tai vain tämän päivän päivämäärä. Tätä varten käytetään erillistä toimintoa - strftime(). Mutta ennen kuin harkitsemme sitä, meidän on jäsennettävä luokka aika.struct_time.

luokan aika.rakenne_aika

Tämä on argumenttiluokka, joka voidaan hyväksyä useilla menetelmillä. Sillä ei ole vaihtoehtoja. Se on monikko, jolla on nimetty käyttöliittymä. Yksinkertaisesti sanottuna tämän luokan elementtejä voidaan käyttää sekä nimellä että indeksinumerolla.

Se koostuu seuraavista määritteistä.Aikamoduuli Python 3:ssa. Päämenetelmät, mallit, esimerkit

Huomio! Toisin kuin useissa muissa ohjelmointikielissä, tässä kuukausi voi vaihdella välillä 1-12, ei nollasta 11:een.

Tietyn muodon palauttaminen

Toiminnon käyttäminen strftime() voit saada vuoden, kuukauden, päivän, tunnin, minuutit, sekunnit yksitellen ja palauttaa ne tekstimerkkijonoon. Sitten se voidaan tulostaa käyttäjälle toiminnon avulla Tulosta () tai muuten käsitelty.

Argumenttina funktio voi ottaa minkä tahansa muuttujan, joka ottaa tämän moduulin muiden funktioiden palauttaman arvon. Voit esimerkiksi siirtää siihen paikallisen ajan (käsitellään myöhemmin), josta se poimii tarvittavat tiedot.

Tässä on koodinpätkä, jossa teemme sen.

tuontiaika

named_tuple = aika.localtime() # hanki struct_time

aikamerkkijono = aika.strftime(«%m/%d/%Y, %H:%M:%S», nimetty_tuple)

tulosta (aikamerkkijono)

Jos suoritat tämän koodin, nykyinen päivämäärä ja aika näytetään. Elementtien muotoa ja järjestystä voidaan muuttaa. Ne ovat seuraavat:

  1. %Y on vuosi.
  2. %m on kuukausi.
  3. %d – päivä.
  4. %H – aika.
  5. %M – minuuttia.
  6. %S – toinen.

Näin ollen voit tehdä sen niin, että tulos on yksinomaan kuukausi ja päivä. Tätä varten sinun ei yksinkertaisesti tarvitse antaa komentoa näyttää vuosi. Eli kirjoita yllä olevaan kaavaan argumentiksi %m/%d, ja se on siinä. Tai päinvastoin, %d/%m. 

Itse asiassa merkkijonoliteraalien määrä on paljon suurempi. Tässä on taulukko, jossa ne on kuvattu yksityiskohtaisesti.Aikamoduuli Python 3:ssa. Päämenetelmät, mallit, esimerkit

Lykkää ketjua tietyn määrän sekunteja

Tätä varten käytetään toimintoa nukkua (). Melko suuri lohko ohjelmointitehtäviä liittyy ajan kulumiseen. Joskus sinun on lykättävä seuraavaa vaihetta tietyksi ajaksi. Esimerkiksi, jos sinun on oltava vuorovaikutuksessa tietokannan kanssa, jonka käsittely kestää tietyn ajan.

Argumenttina menetelmä käyttää arvoa, joka ilmaisee kuinka monta sekuntia viivästää algoritmin seuraavaa vaihetta.

Esimerkiksi tässä katkelmassa viive on 10 sekuntia.

tuontiaika

tauko = 10

tulosta ("Ohjelma aloitettu...")

aika.uni(tauko)

print(str(tauko) + » sekuntia kulunut.»)

Tuloksena saamme tämän:

Ohjelma alkoi…

10 sekuntia kului.

Kuten tulosteesta nähdään, ohjelma ilmoittaa ensin käynnistyneensä. Ja kymmenen sekunnin kuluttua hän kirjoitti, että tämä aika oli kulunut.

Toiminnon avulla voit määrittää tauon keston millisekunteina. Tätä varten käytämme funktion argumentin murto-osia nukkua. Esimerkiksi 0,1. Tämä tarkoittaa, että viive on 100 millisekuntia.

Hanki paikallinen aika

Localtime()-funktion avulla ohjelma saa sekuntimäärän aikakauden alusta tietyllä aikavyöhykkeellä. 

Annetaan esimerkkikoodi selvyyden vuoksi.

tuontiaika

tulos = aika.paikallinen aika(1575721830)

tulosta ("tulos:", tulos)

print(«nгод:», tulos.tm_vuosi)

print(«tm_hour:», tulos.tm_tunti)

Palauttaa struct_time-arvon UTC:ssä perustuen sekuntimäärään epookista

Tämä tehtävä suoritetaan käyttämällä time.gmtime(). menetelmä. Se on selkeämpi, jos annamme esimerkin.

tuontiaika

tulos = aika.gmtime(1575721830)

tulosta ("tulos:", tulos)

print(«nгод:», tulos.tm_vuosi)

print(«tm_hour:», tulos.tm_tunti)

Jos otat tämän toimintosarjan käyttöön, näyttöön tulee joukko aikaan, vuoteen ja aikavyöhykkeeseen liittyviä elementtejä.

Palauta sekuntien lukumäärä aikakauden alusta automaattisella muunnolla paikalliseen aikaan

Jos kohtaat tällaisen tehtävän, se toteutetaan menetelmällä mktime(), joka vie struct_time. Sen jälkeen se suorittaa toiminnon käänteisen toiminnan paikallinen aika(). Toisin sanoen se muuntaa paikallisen aikavyöhykkeen mukaisen ajan aikavyöhykkeen mukaan säädetyksi sekunteiksi, jotka ovat kuluneet aikakauden alusta.

Funktiot mktime() ja localtime() ovat tiiviisti kietoutuneet toisiinsa. Tämä koodinpätkä osoittaa tämän selvästi. Katsotaanpa sitä ymmärtääksemme tarkemmin, miten se toimii. 

tuontiaika

sekuntia = 1575721830

# palauttaa struct_timen

t = aika.paikallinen aika (sekuntia)

tulosta («t1: «, t)

# palauttaa sekuntia struct_timesta

s = aika.mktime(t)

tulosta («ns:», sekuntia)

Näemme, että muuttuja sekuntia on määrätty 1575721830 sekuntia aikakaudesta. Ensin ohjelma saa tarkan päivämäärän, kellonajan ja muut parametrit tämän arvon perusteella, laita se muuttujaan tja muuntaa sitten sen sisällön muuttujaksi s.

Tämän jälkeen lyö uusi rivi ja näyttää sekuntien määrän konsolissa. Voit tarkistaa, että se on sama numero, joka määritettiin sekuntimuuttujalle.

Tulostuspäivämäärä 9 numerosta, jotka viittaavat struct_timeen

Oletetaan, että meillä on 9 numeroa, jotka edustavat vuotta, kuukautta, päivämäärää, viikonpäivää ja useita muita arvoja, ja meidän on yhdistettävä ne yhdeksi merkkijonoksi. Tätä varten käytetään toimintoa asctime(). Hän hyväksyy tai valmis struct_time, tai mikä tahansa muu 9 arvon monikko, joka tarkoittaa samaa. Tämän jälkeen palautetaan merkkijono, joka on päivämäärä, aika ja joukko muita parametreja. 

On erittäin kätevää käyttää tätä menetelmää erilaisten käyttäjän määrittämien tietojen tuomiseksi yhdeksi muuttujaksi..

Se voi olla esimerkiksi ohjelma, jossa käyttäjä määrittää erikseen päivän, kuukauden, vuoden, viikonpäivän ja muut tapahtumaan ilmoittautumiseen liittyvät tiedot. Tämän jälkeen saadut tiedot syötetään tietokantaan ja luovutetaan sitten toiselle sitä pyytävälle henkilölle.

Kellonajan ja päivämäärän hakeminen Python-merkkijonon perusteella

Oletetaan, että käyttäjä on määrittänyt erilaisia ​​tietoja, ja meidän on yhdistettävä ne yhdeksi riviksi henkilön syöttämässä muodossa ja sitten kopioitava toiseen muuttujaan ja rakennettava se siellä uudelleen vakiomuotoon. Tätä varten käytetään toimintoa aika.strptime().

Se ottaa muuttujan, jossa tämä arvo on määritetty, ja palauttaa meille jo tutun struct_time.

Selvyyden vuoksi kirjoitamme tällaisen ohjelman.

tuontiaika

time_string = «15. kesäkuuta 2019»

tulos = aika.strptime(aikamerkkijono, «%d %B, %Y»)

tulosta (tulos)

Arvaa mikä on tulos? Yritä arvata katsomatta alariviä. Ja sitten tarkista vastaus.

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

Sanalla sanoen, päivämäärien ja aikojen työskentely Pythonissa ei ole ollenkaan vaikeaa. Riittää, kun noudatat näitä ohjeita, ja kaikki järjestyy. Kirjaston käyttäminen aika käyttäjä saa valtavan määrän mahdollisuuksia työskennellä ajan kanssa, kuten:

  1. Keskeytä ohjelman suorittaminen tietyksi ajaksi.
  2. Näytä aika, joka on kulunut aikakaudesta sekunneissa. Näitä tietoja voidaan käyttää laskemaan aikaa tai suorittamaan sille muita matemaattisia operaatioita.
  3. Muunna kätevään muotoon. Lisäksi ohjelmoija voi itse määrittää, mitkä elementit näytetään ja missä järjestyksessä. 

On myös monia muita mahdollisuuksia, mutta tänään olemme analysoineet alkeellisimmat. Ne ovat hyödyllisiä melkein kaikissa ohjelmissa, jotka jotenkin toimivat ajan kanssa. Onnea.

Jätä vastaus