Tidsmodul i Python 3. Hovedmetoder, maler, eksempler

Nesten alle programmer bruker tid. I Python er det utviklet et eget bibliotek for dette – tidbrukes til å utføre en rekke handlinger med den. For å få det til å fungere, må det først deklareres i begynnelsen av koden. Denne linjen brukes til dette:

importtid

La oss vurdere ulike alternativer for hvordan du bruker denne modulen riktig i praksis. 

Bestemme antall sekunder siden epoken

For å utføre denne oppgaven er det en funksjon tid() som ikke tar noen parametere. Returverdien er hvor mange sekunder som har gått siden 1. januar 1970. I Python kalles denne tiden starten på en epoke. I hvert fall i operativsystemer til Unix-familien.

Når det gjelder Windows, er datoen den samme, men det kan være problemer med negative verdier som var før denne datoen. 

Tidssonen som brukes er UTC.

importtid

sekunder = tid.tid()

print(“Sekunder siden epoke =”, sekunder)

Kompleksiteten til denne funksjonen er at den ikke viser nøyaktig dato, men bare antall sekunder. For å konvertere til formatet som er kjent for alle, må du bruke nøyaktig informasjon. Til dette brukes funksjonen time.ctime().

Returnerer dato og klokkeslett i vanlig format

For å returnere tiden i vanlig format, er det en metode time.ctime(). Klammerne angir en variabel eller et tall som indikerer antall sekunder som har gått siden starten av epoken. Denne metoden returnerer alle dato- og klokkeslettegenskaper, inkludert dato, år, antall timer, minutter, sekunder og ukedag.

Denne funksjonen kan også brukes uten argumenter. I dette tilfellet returnerer den gjeldende dato, klokkeslett og så videre.

Her er en kodebit som demonstrerer dette.

importtid

print(time.ctime())

Tir 23. oktober 10:18:23 2018

Den siste linjen er det som skrives ut til konsollen der Python-tolken kjører. Metoden formaterer automatisk det mottatte antallet sekunder til et brukerkjent skjema. Det er sant at alle elementene beskrevet ovenfor brukes sjelden. Som regel må du få enten bare klokkeslettet, eller kun dagens dato. For dette brukes en egen funksjon – strftime(). Men før vi vurderer det, må vi analysere klassen time.struct_time.

time.struct_time

Dette er en kategori av argumenter som kan aksepteres med en rekke metoder. Den har ingen alternativer. Det er en tuppel med et navngitt grensesnitt. Enkelt sagt kan elementene i denne klassen nås både med navn og indeksnummer.

Den består av følgende attributter.Tidsmodul i Python 3. Hovedmetoder, maler, eksempler

Merk følgende! I motsetning til en rekke andre programmeringsspråk kan måneden her variere fra 1 til 12, og ikke fra null til 11.

Returnerer et spesifikt format

Bruke funksjonen strftime () du kan få år, måned, dag, time, minutter, sekunder individuelt og returnere dem til en tekststreng. Deretter kan den skrives ut til brukeren ved hjelp av funksjonen skrive ut () eller på annen måte behandlet.

Som et argument kan en funksjon ta en hvilken som helst variabel som tar en verdi som returneres av andre funksjoner i denne modulen. For eksempel kan du overføre lokal tid til den (det vil bli diskutert senere), hvorfra den vil trekke ut de nødvendige dataene.

Her er kodebiten der vi gjør det.

importtid

named_tuple = time.localtime() # get struct_time

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

print(tidsstreng)

Hvis du kjører denne koden, vil gjeldende dato og klokkeslett vises. Formatet og rekkefølgen av elementer kan endres. De er som følger:

  1. %Y er året.
  2. %m er måneden.
  3. %d – dag.
  4. %H – tid.
  5. %M – minutter.
  6. %S – sekund.

Følgelig kan du gjøre det slik at utgangen utelukkende er for måneden og dagen. For å gjøre dette trenger du ganske enkelt ikke gi en kommando for å vise året. Det vil si, skriv i formelen ovenfor som et argument %m/%d, og det er det. Eller omvendt, %d/%m. 

Faktisk er antallet strengliteraler mye større. Her er en tabell hvor de er beskrevet i detalj.Tidsmodul i Python 3. Hovedmetoder, maler, eksempler

Utsett en tråd i et visst antall sekunder

Til dette brukes funksjonen sove (). En ganske stor blokk med programmeringsoppgaver er knyttet til tidens gang. Noen ganger må du utsette neste trinn for en viss tid. For eksempel hvis du trenger å samhandle med en database som tar en viss tid å behandle.

Som et argument bruker metoden en verdi som uttrykker antall sekunder for å forsinke neste trinn fra algoritmen.

For eksempel, i dette utdraget er forsinkelsen 10 sekunder.

importtid

pause = 10

print(«Program startet...»)

time.sleep(pause)

print(str(pause) + » sekunder gikk.»)

Som et resultat vil vi få dette:

Program startet...

10 sekunder gikk.

Som vi kan se av utdataene, rapporterer programmet først at det har startet. Og etter ti sekunder skrev hun at denne tiden var gått.

Funksjonen lar deg spesifisere varigheten av pausen i millisekunder. For å gjøre dette bruker vi brøkverdier av funksjonsargumentet sove. For eksempel 0,1. Dette betyr at forsinkelsen blir 100 millisekunder.

Få lokal tid

Ved å bruke funksjonen localtime() får programmet antall sekunder siden starten av epoken i en bestemt tidssone. 

La oss gi et eksempelkode for klarhet.

importtid

resultat = time.localtime(1575721830)

print(“resultat:”, resultat)

print(«nгод:», resultat.tm_year)

print(«tm_hour:», resultat.tm_hour)

Returner struct_time i UTC basert på antall sekunder siden epoke

Denne oppgaven oppnås ved å bruke time.gmtime(). metode. Det blir tydeligere hvis vi gir et eksempel.

importtid

resultat = time.gmtime(1575721830)

print(“resultat:”, resultat)

print(«nгод:», resultat.tm_year)

print(«tm_hour:», resultat.tm_hour)

Hvis du slår på denne handlingssekvensen, vil et sett med elementer relatert til tid, år og tidssone vises.

Returner antall sekunder siden starten av epoken med automatisk konvertering til lokal tid

Står du overfor en slik oppgave, implementeres den ved hjelp av metoden mktime (), som tar struct_time. Etter det utfører den omvendt handling av funksjonen lokal tid(). Det vil si at den konverterer tiden i henhold til den lokale tidssonen til antall sekunder som har gått siden starten av epoken, justert for tidssonen.

Funksjonene mktime() og localtime() er tett sammenvevd. Denne kodebiten viser tydelig dette. La oss ta en titt på det for å forstå mer dyptgående hvordan det fungerer. 

importtid

sekunder = 1575721830

# returnerer struct_time

t = tid.lokaltid(sekunder)

print(«t1: «, t)

# returnerer sekunder fra struct_time

s = tid.mktime(t)

print(«ns:», sekunder)

Vi ser at variabelen sekunder har blitt tildelt 1575721830 sekunder siden epoken. Først får programmet nøyaktig dato, klokkeslett og andre parametere, basert på denne verdien, legg den inn i en variabel t, og konverterer deretter innholdet til en variabel s.

Etter det slår av en ny linje og viser antall sekunder i konsollen. Du kan sjekke at det vil være det samme tallet som ble tildelt sekunder-variabelen.

Utdatadato fra 9 tall som refererer til struct_time

Anta at vi har 9 tall som representerer år, måned, dato, ukedag og en rekke andre verdier, og vi må kombinere dem til én streng. Til dette brukes funksjonen asctime(). Hun aksepterer eller er klar struct_time, eller en hvilken som helst annen tuppel på 9 verdier som står for det samme. Etter det returneres en streng, som er en dato, klokkeslett og en rekke andre parametere. 

Det er veldig praktisk å bruke denne metoden for å bringe forskjellige brukerspesifiserte data inn i en enkelt variabel..

Det kan for eksempel være et program der brukeren spesifiserer separat dag, måned, år, ukedag og andre data vedrørende påmelding til et arrangement. Deretter legges den mottatte informasjonen inn i databasen og sendes deretter til en annen person som ber om det.

Få tid og dato basert på Python-streng

Anta at brukeren har spesifisert forskjellige data, og vi må kombinere dem til én linje i formatet som personen skrev inn, og deretter lage en kopi til en annen variabel, og bygge den om til et standardformat der. Til dette brukes funksjonen time.strptime().

Den tar en variabel der denne verdien er spesifisert, og returnerer den som allerede er kjent for oss struct_time.

For klarhetens skyld vil vi skrive et slikt program.

importtid

time_string = «15. juni 2019»

resultat = time.strptime(time_string, «%d %B, %Y»)

print (resultat)

Gjett hva resultatet blir? Prøv å gjette uten å se på bunnlinjen. Og så sjekk svaret.

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)

Det er med et ord ikke vanskelig å jobbe med datoer og klokkeslett i Python. Det er nok å følge disse instruksjonene, og alt vil ordne seg. Bruke biblioteket tid brukeren får et stort antall muligheter for å jobbe med tid, for eksempel:

  1. Stopp programkjøringen i en spesifisert tidsperiode.
  2. Vis tiden som har gått siden epoken, i sekunder. Denne informasjonen kan brukes til å summere tid eller utføre andre matematiske operasjoner på den.
  3. Konverter til et praktisk format. Dessuten kan programmereren selv stille inn hvilke elementer som skal vises og i hvilken rekkefølge. 

Det finnes også en rekke andre muligheter, men i dag har vi analysert de mest grunnleggende. De vil komme til nytte i nesten alle programmer som på en eller annen måte fungerer med tiden. Lykke til.

Legg igjen en kommentar