Tijdmodule in Python 3. Belangrijkste methoden, sjablonen, voorbeelden

Bijna elk programma gebruikt tijd. In Python is hiervoor een aparte bibliotheek ontwikkeld – niet de tijd ofgebruikt om er verschillende acties mee uit te voeren. Om het te laten werken, moet het eerst aan het begin van de code worden aangegeven. Hiervoor wordt deze regel gebruikt:

import tijd

Laten we verschillende opties bekijken om deze module in de praktijk correct te gebruiken. 

Bepalen van het aantal seconden sinds het tijdperk

Om deze taak te volbrengen, is er een functie: niet de tijd of() waarvoor geen parameters nodig zijn. De retourwaarde is hoeveel seconden er zijn verstreken sinds 1 januari 1970. In Python wordt deze tijd het begin van een tijdperk genoemd. Tenminste in besturingssystemen van de Unix-familie.

Wat betreft Windows is de datum hetzelfde, maar er kunnen problemen zijn met negatieve waarden die vóór deze datum waren. 

De gebruikte tijdzone is UTC.

import tijd

seconden = tijd.tijd()

print ("Seconden sinds tijdperk =", seconden)

De complexiteit van deze functie is dat deze niet precies de datum weergeeft, maar alleen het aantal seconden. Om te converteren naar het formaat dat iedereen kent, moet u nauwkeurige informatie gebruiken. Hiervoor wordt de functie gebruikt tijd.ctime().

De datum, tijd retourneren in het gebruikelijke formaat

Om de tijd in het gebruikelijke formaat terug te geven, is er een methode: tijd.ctime(). De haakjes geven een variabele of een getal aan dat het aantal seconden aangeeft dat is verstreken sinds het begin van het tijdperk. Deze methode retourneert alle datum- en tijdkenmerken, inclusief de datum, het jaar, het aantal uren, minuten, seconden en de dag van de week.

Deze functie kan ook zonder argumenten worden gebruikt. In dit geval retourneert het de huidige datum, tijd, enzovoort.

Hier is een codefragment dat dit aantoont.

import tijd

print(tijd.ctime())

di 23 okt 10:18:23 2018

De laatste regel is wat wordt afgedrukt naar de console waar de Python-interpreter wordt uitgevoerd. De methode formatteert het ontvangen aantal seconden automatisch in een voor de gebruiker bekende vorm. Toegegeven, alle hierboven beschreven elementen worden zelden gebruikt. In de regel moet u ofwel alleen de tijd of alleen de datum van vandaag krijgen. Hiervoor wordt een aparte functie gebruikt – strftijd(). Maar voordat we erover nadenken, moeten we de klasse ontleden tijd.struct_tijd.

lestijd.struct_time

Dit is een categorie argumenten die op verschillende manieren kan worden geaccepteerd. Het heeft geen opties. Het is een tuple met een benoemde interface. Simpel gezegd, de elementen van deze klasse zijn zowel op naam als op indexnummer toegankelijk.

Het bestaat uit de volgende attributen.Tijdmodule in Python 3. Belangrijkste methoden, sjablonen, voorbeelden

Aandacht! In tegenstelling tot een aantal andere programmeertalen, kan hier de maand variëren van 1 tot 12, en niet van nul tot 11.

Een specifiek formaat retourneren

De functie gebruiken strftime () u kunt het jaar, de maand, de dag, het uur, de minuten en de seconden afzonderlijk ophalen en terugbrengen naar een tekstreeks. Vervolgens kan het naar de gebruiker worden afgedrukt met behulp van de functie: afdrukken () of anderszins verwerkt.

Als argument kan een functie elke variabele aannemen die een waarde aanneemt die wordt geretourneerd door andere functies van deze module. U kunt er bijvoorbeeld de lokale tijd naar overzetten (dit wordt later besproken), waaruit het de nodige gegevens haalt.

Hier is het codefragment waar we het doen.

import tijd

named_tuple = time.localtime() # krijg struct_time

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

print(tijd_tekenreeks)

Als u deze code uitvoert, worden de huidige datum en tijd weergegeven. Het formaat en de volgorde van elementen kunnen worden gewijzigd. Ze zijn als volgt:

  1. %Y is het jaar.
  2. %m is de maand.
  3. %d – dag.
  4. %H – tijd.
  5. %M – minuten.
  6. %S – tweede.

Dienovereenkomstig kunt u ervoor zorgen dat de uitvoer uitsluitend van de maand en de dag is. Om dit te doen, hoeft u eenvoudigweg geen opdracht te geven om het jaartal weer te geven. Dat wil zeggen, schrijf in de bovenstaande formule als argument %m/%d, en dat is alles. Of omgekeerd, %d/%m. 

In feite is het aantal letterlijke tekenreeksen veel groter. Hier is een tabel waar ze in detail worden beschreven.Tijdmodule in Python 3. Belangrijkste methoden, sjablonen, voorbeelden

Een discussie een bepaald aantal seconden uitstellen

Hiervoor wordt de functie gebruikt slaap (). Een vrij groot aantal programmeertaken is gekoppeld aan het verstrijken van de tijd. Soms moet je de volgende stap een bepaalde tijd uitstellen. Als u bijvoorbeeld moet communiceren met een database die een bepaalde tijd nodig heeft om te verwerken.

Als argument gebruikt de methode een waarde die het aantal seconden uitdrukt om de volgende stap van het algoritme uit te stellen.

In dit fragment is de vertraging bijvoorbeeld 10 seconden.

import tijd

pauze = 10

print(«Programma gestart…»)

tijd.slaap(pauze)

print(str(pauze) + » seconden verstreken.»)

Als resultaat krijgen we dit:

Programma gestart…

10 seconden verstreken.

Zoals we aan de output kunnen zien, meldt het programma eerst dat het is gestart. En na tien seconden schreef ze dat deze tijd voorbij was.

Met deze functie kunt u de duur van de pauze in milliseconden specificeren. Om dit te doen, gebruiken we fractionele waarden van het functieargument slapen. Bijvoorbeeld 0,1. Dit betekent dat de vertraging 100 milliseconden zal zijn.

Lokale tijd ophalen

Met behulp van de functie localtime() krijgt het programma het aantal seconden sinds het begin van het tijdperk in een specifieke tijdzone. 

Laten we voor de duidelijkheid een voorbeeldcode geven.

import tijd

resultaat = tijd.lokale tijd (1575721830)

print(“resultaat:”, resultaat)

print(«nгод:», resultaat.tm_jaar)

print(«tm_hour:», resultaat.tm_hour)

Retourneer struct_time in UTC op basis van het aantal seconden sinds epoch

Deze taak wordt bereikt met behulp van de time.gmtime(). methode. Het wordt duidelijker als we een voorbeeld geven.

import tijd

resultaat = tijd.gmtime (1575721830)

print(“resultaat:”, resultaat)

print(«nгод:», resultaat.tm_jaar)

print(«tm_hour:», resultaat.tm_hour)

Als u deze reeks acties inschakelt, wordt een reeks elementen met betrekking tot tijd, jaar en tijdzone weergegeven.

Retourneer het aantal seconden sinds het begin van het tijdperk met automatische conversie naar lokale tijd

Als u met een dergelijke taak wordt geconfronteerd, wordt deze geïmplementeerd met behulp van de methode mktijd(), wat duurt structuur_tijd. Daarna voert het de omgekeerde actie van de functie uit: lokale tijd(). Dat wil zeggen, het converteert de tijd volgens de lokale tijdzone naar het aantal seconden dat is verstreken sinds het begin van het tijdperk, aangepast voor de tijdzone.

De functies mktime() en localtime() zijn nauw met elkaar verweven. Dit codefragment toont dit duidelijk aan. Laten we er eens naar kijken om beter te begrijpen hoe het werkt. 

import tijd

seconden = 1575721830

# geeft struct_time terug

t = tijd.lokale tijd(seconden)

afdrukken(«t1: «, t)

# retourneert seconden van struc_time

s = tijd.mktime(t)

print(«ns:», seconden)

We zien dat de variabele seconden heeft sinds het tijdperk 1575721830 seconden toegewezen gekregen. Eerst krijgt het programma de exacte datum, tijd en andere parameters, gebaseerd op deze waarde, zet het in een variabele t, en zet de inhoud vervolgens om in een variabele s.

Daarna slaat een nieuwe regel af en toont het aantal seconden in de console. U kunt controleren of dit hetzelfde nummer is dat aan de secondevariabele is toegewezen.

Uitvoerdatum van 9 cijfers die verwijzen naar struct_time

Stel dat we 9 getallen hebben die het jaar, de maand, de datum, de dag van de week en een aantal andere waarden vertegenwoordigen, en we moeten ze combineren in één string. Hiervoor wordt de functie gebruikt asctijd(). Ze accepteert of is klaar struct_time, of een ander tupel van 9 waarden die voor hetzelfde staat. Daarna wordt een tekenreeks geretourneerd, die een datum, tijd en een aantal andere parameters is. 

Het is erg handig om deze methode te gebruiken om ongelijksoortige door de gebruiker gespecificeerde gegevens in een enkele variabele te brengen..

Het kan bijvoorbeeld een programma zijn waarbij de gebruiker afzonderlijk de dag, maand, jaar, dag van de week en andere gegevens met betrekking tot registratie voor een evenement specificeert. Daarna wordt de ontvangen informatie ingevoerd in de database en vervolgens afgegeven aan een andere persoon die erom vraagt.

Tijd en datum ophalen op basis van Python-string

Stel dat de gebruiker ongelijksoortige gegevens heeft gespecificeerd, en we moeten ze combineren tot één regel in het formaat dat de persoon heeft ingevoerd, en dan een kopie maken naar een andere variabele en het daar opnieuw opbouwen in een standaardformaat. Hiervoor wordt de functie gebruikt tijd.strptime().

Er is een variabele voor nodig waarin deze waarde is opgegeven, en retourneert het reeds bekende voor ons structuur_tijd.

Voor de duidelijkheid zullen we zo'n programma schrijven.

import tijd

time_string = «15 juni, 2019»

resultaat = tijd.strptime(time_string, «%d %B, %Y»)

afdrukken (resultaat)

Raad eens wat de output zal zijn? Probeer te raden zonder naar de onderste regel te kijken. En controleer dan het antwoord.

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)

Kortom, werken met datums en tijden in Python is helemaal niet moeilijk. Het is voldoende om deze instructies te volgen en alles komt goed. De bibliotheek gebruiken niet de tijd of de gebruiker krijgt enorm veel mogelijkheden om met de tijd te werken, zoals:

  1. Onderbreek de uitvoering van het programma voor een bepaalde tijd.
  2. Toon de tijd die is verstreken sinds het tijdperk, in seconden. Deze informatie kan worden gebruikt om de tijd op te tellen of er andere wiskundige bewerkingen op uit te voeren.
  3. Converteren naar een handig formaat. Bovendien kan de programmeur zelf instellen welke elementen worden weergegeven en in welke volgorde. 

Er zijn ook een aantal andere mogelijkheden, maar vandaag hebben we de meest elementaire geanalyseerd. Ze zullen van pas komen in bijna elk programma dat op de een of andere manier met de tijd werkt. Veel geluk.

Laat een reactie achter