Python DatumTijd, TijdDelta, Strftime (formaat) met voorbeelden
โก Slimme samenvatting
Python De module `datetime`, samen met de klassen `date`, `time` en `timedelta`, behandelt datums, tijden en intervallen als objecten. De `datetime`-module formatteert de uitvoer met `strftime()`, parseert tekenreeksen en berekent toekomstige of voorbije momenten met behulp van `timedelta`-rekenkunde.

In Python, datum, tijd en datetime Klassen bieden een aantal functies om met datums, tijden en tijdsintervallen te werken. Datum en datumtijd in Python Het zijn objecten, dus wanneer je ze manipuleert, manipuleer je feitelijk objecten en geen tekenreeksen of tijdstempels. Telkens wanneer je datums of tijden manipuleert, moet je de datetime-module importeren.
De datetime-klassen in Python worden onderverdeeld in 5 hoofdcategorieรซn.
- datum - Manipuleer alleen de datum (maand, dag, jaar)
- tijd โ Tijd onafhankelijk van de dag (uur, minuut, seconde, microseconde)
- datetime โ Combinatie van tijd en datum (maand, dag, jaar, uur, seconde, microseconde)
- timedelta - Een tijdsduur die wordt gebruikt voor het manipuleren van datums
- tzinfoโ Een abstract-klasse voor het omgaan met tijdzones
Datum- en datum-tijdklasse gebruiken
Stap 1) Voordat u de code voor het datum/tijd-formaat uitvoert Python, is het belangrijk dat u de Python datum-tijdmodules zoals weergegeven in de onderstaande schermafbeelding.
Deze importinstructies zijn vooraf gedefinieerde stukjes functionaliteit in het Python Een bibliotheek waarmee je datums en tijden kunt manipuleren zonder code te schrijven.
Houd rekening met de volgende punten voordat u de Python datum/tijd-formaatcode
from datetime import date
Deze regel vertelt de Python tolk om de datumklasse uit de datetime-module in te importeren PythonWe schrijven de code voor deze datumfunctionaliteit niet zelf, maar importeren deze simpelweg voor eigen gebruik.
Datum afdrukken met date.today()
De functie date.today() heeft verschillende eigenschappen. We kunnen er de dag, maand, het jaar en nog veel meer mee afdrukken.
Laten we een voorbeeld bekijken
Het weekdagnummer van vandaag
De functie date.today() geeft je ook het weekdagnummer. Hier is de weekdagtabel die begint met Monday als 0 en zondag als 6.
| Dag | Weekdagnummer |
|---|---|
| Monday | 0 |
| dinsdag | 1 |
| woensdag | 2 |
| donderdag | 3 |
| vrijdag | 4 |
| zaterdag | 5 |
| zondag | 6 |
Weekdagnummer is handig voor arrays waarvan de index afhankelijk is van de dag van de week.
Stap 2) Vervolgens maken we een exemplaar van het date-object.
Stap 3) Vervolgens drukken we de datum af en voeren we de code uit.
Het resultaat is zoals verwacht.
Python Huidige datum en tijd: now() today()
Stap 1) Net als Date Objects kunnen we ook gebruiken โDATETIME-OBJECTENโ in Python. Python datum- en tijdobjecten geven datum en tijd weer uren, minuten, seconden en milliseconden.
Wanneer we de code voor datetime uitvoeren, geeft deze de uitvoer met de huidige datum en tijd.
Stap 2) Met "DATETIME OBJECT" kunt u ook de tijdklasse aanroepen. Stel dat we alleen de huidige tijd willen afdrukken, zonder de datum.
t = datetime.time(datetime.now())
- We hadden de tijdklasse geรฏmporteerd. We zullen het de huidige waarde van tijd toewijzen met behulp van datetime.now()
- We kennen de waarde van de huidige tijd toe aan de variabele t.
En dit geeft mij precies de tijd. Dus laten we dit programma uitvoeren.
Okรฉ, zoals je ziet, heb ik hier de datum en tijd. En op de volgende regel heb ik alleen de tijd.
Stap 3) We passen onze index voor de weekdagen toe op de lijst met weekdagen om te weten welke dag het vandaag is.
- Aan de operator voor weekdagen (wd) wordt een getal van 0 tot 6 toegekend, afhankelijk van de huidige weekdag. Hier hebben we de array met lijsten voor de dagen (ma, di, woโฆzo) gedeclareerd.
- Gebruik die indexwaarde om te weten welke dag het is. In ons geval is dit nummer 2 en vertegenwoordigt het woensdag, dus in de uitvoer wordt 'Wat een woensdag is' afgedrukt.
Hier is de volledige code om de huidige datum en tijd op te halen met datetime now
from datetime import date from datetime import time from datetime import datetime def main(): ##DATETIME OBJECTS #Get today's date from datetime class today=datetime.now() #print (today) # Get the current time #t = datetime.time(datetime.now()) #print "The current time is", t #weekday returns 0 (monday) through 6 (sunday) wd=date.weekday(today) #Days start at 0 for monday days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"] print("Today is day number %d" % wd) print("which is a " + days[wd]) if __name__== "__main__": main()
Datum- en tijduitvoer opmaken met Strftime()
Tot nu toe hebben we geleerd hoe we datetime en date kunnen gebruiken. bezwaar in Python. We gaan nog een stap verder en leren hoe u een opmaakfunctie kunt gebruiken om tijd en datum op te maken.
Stap 1) Eerst zullen we een eenvoudige stap zien voor het formatteren van het jaar. Het is beter om het te begrijpen met een voorbeeld.
- We gebruikten de โstrftime-functieโ voor opmaak.
- Deze functie maakt gebruik van verschillende controlecode een uitvoer te geven.
- Elke besturingscode komt overeen met verschillende parameters zoals jaar, maand, weekdag en datum. [(%y/%Y โ Jaar), (%a/%A- weekdag), (%b/%B- maand), (%d โ dag van de maand)] .
- In ons geval is dat zo (โ%Yโ) dat op het jaar lijkt, wordt het volledige jaar met de eeuw afgedrukt (bijvoorbeeld 2018).
Stap 2) Als u nu (โ%Yโ) vervangt door kleine letters, dat wil zeggen (โ%y)โ en de code uitvoert, wordt alleen (18) weergegeven en niet (2018). De eeuw van het jaar wordt niet weergegeven zoals weergegeven in de onderstaande schermafbeelding
Stap 3) De `strf`-functie kan de datum, dag, maand en het jaar afzonderlijk opgeven. Met kleine aanpassingen in de besturingscode van de `strftime`-functie kunt u bovendien de opmaak van de tekst aanpassen.
Als je binnen de strftime-functie (%a) vervangt door een hoofdletter A, dus (%A), dan wordt er "Friday" afgedrukt in plaats van de afkorting "Fri".
Stap 4) Met behulp van de โStrftimeโ -functie kunnen we ook de lokale systeemtijd, datum of beide ophalen.
- %C- geeft de lokale datum en tijd aan
- %x- geeft de lokale datum aan
- %X- geeft de lokale tijd aan
In de uitvoer ziet u het resultaat zoals verwacht
Stap 5) Met de โstrftime-functieโ kunt u de tijd in elk gewenst formaat aanroepen: 24 uur of 12 uur.
Door simpelweg de controlecode te definiรซren, zoals %I/H voor uur, % M voor minuut, %S voor seconde, kan men tijd voor verschillende formaten oproepen
12 uur tijd is gedeclareerd [print now.strftime(โ%I:%M:%S %p) ]
24 uur tijd is gedeclareerd [print now.strftime(โ%H:%Mโ)]
Hier is de volledige code om datetime naar String-object te converteren.
# #Example file for formatting time and date output # from datetime import datetime def main(): #Times and dates can be formatted using a set of predefined string #Control codes now= datetime.now() #get the current date and time #%c - local date and time, %x-local's date, %X- local's time print(now.strftime("%c")) print(now.strftime("%x")) print(now.strftime("%X")) ##### Time Formatting #### #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM print(now.strftime("%I:%M:%S %p")) # 12-Hour:Minute:Second:AM print(now.strftime("%H:%M")) # 24-Hour:Minute if __name__== "__main__": main()
Wat is Timedelta in Python?
Tijdsdelta in Python `timedelta` is een object dat de tijdsduur vertegenwoordigt. Het wordt voornamelijk gebruikt om de tijdsduur tussen twee datums en tijden te berekenen. Het wordt ook gebruikt om een โโobject met een bepaalde datum- en tijdsdelta op te halen. Het `timedelta`-object ondersteunt wiskundige bewerkingen zoals optellen en aftrekken.tracties, vermenigvuldiging, deling enz.
Hoe Timedelta-objecten te gebruiken
Met Python Met timedelta-objecten kunt u de tijd voor zowel de toekomst als het verleden schatten. Met andere woorden, het is een tijdspanne om een โโspeciale dag, datum of tijd te voorspellen.
Onthoud dat deze functie niet bedoeld is om de tijd of datum af te drukken, maar om te BEREKENEN over de toekomst of het verledenLaten we eens kijken Python timedelta voorbeeld om het beter te begrijpen.
Stap 1) Om Timedelta-objecten uit te voeren, moet u eerst de import-instructie declareren en vervolgens de code uitvoeren
- Schrijf import-statement voor timedelta
- Schrijf nu de code om het object uit de tijdsdelta af te drukken zoals weergegeven in de schermafbeelding
- Voer de code uit. De timedelta vertegenwoordigt een periode van 365 dagen, 8 uur en 15 minuten en drukt hetzelfde af
Verwarrend? De volgende stap zal helpen-
Stap 2) Laten we de datum en tijd van vandaag gebruiken om te controleren of onze importverklaring goed werkt. Wanneer de code wordt uitgevoerd, wordt de datum van vandaag afgedrukt, wat betekent dat onze importinstructie goed werkt
Stap 3) We zullen zien hoe we een datum een โโjaar later kunnen ophalen via delta-objecten. Wanneer we de code uitvoeren, geeft het de output zoals verwacht.
Stap 4) Een ander voorbeeld van hoe tijdsdelta kan worden gebruikt om toekomstige datums te berekenen op basis van de huidige datum en tijd
Stap 5) Laten we eens kijken naar een complexer voorbeeld. Ik wil graag bepalen hoeveel dagen na Nieuwjaar. Dit is hoe we verder gaan
- Met today= date.today() krijgen we de datum van vandaag
- We weten dat het nieuwe jaar altijd op 1 januari valt, maar het jaar kan anders zijn. Met nyd= date(today.year,1,1) slaan we het nieuwe jaar op in de variabele nyd
- Als nyd < today: wordt vergeleken of de huidige datum na nieuwjaar is. Zo ja, dan wordt de while-lus gestart.
- ((today-nyd).days) geeft het verschil tussen een huidige datum en het nieuwe jaar in DAGEN
Uit de output blijkt dat โNieuwjaarsdag al 11 dagen geleden voorbij is.โ
Hier is de volledige werkende code
# # Example file for working with timedelta objects # from datetime import date from datetime import time from datetime import datetime from datetime import timedelta # construct a basic timedelta and print it print (timedelta(days=365, hours=8, minutes=15)) # print today's date print ("today is: " + str(datetime.now())) # print today's date one year from now print ("one year from now it will be:" + str(datetime.now() + timedelta(days=365))) # create a timedelta that uses more than one argument # print (in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4))) # How many days until New Year's Day? today = date.today() # get todays date nyd = date(today.year, 1, 1) # get New Year Day for the same year # use date comparison to see if New Year Day has already gone for this year # if it has, use the replace() function to get the date for next year if nyd < today: print ("New Year day is already went by %d days ago" % ((today - nyd).days))
Python 2 Voorbeeld
De volgende voorbeelden tonen dezelfde datum- en tijdbewerkingen die zijn geschreven voor Python 2, waarbij print een statement is in plaats van een functie. Gebruik deze versies alleen bij het onderhouden van oudere versies. Python 2 code.
from datetime import date from datetime import time from datetime import datetime def main(): ##DATETIME OBJECTS #Get today's date from datetime class today=datetime.now() #print today # Get the current time #t = datetime.time(datetime.now()) #print "The current time is", t #weekday returns 0 (monday) through 6 (sunday) wd = date.weekday(today) #Days start at 0 for monday days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"] print "Today is day number %d" % wd print "which is a " + days[wd] if __name__== "__main__": main()
# #Example file for formatting time and date output # from datetime import datetime def main(): #Times and dates can be formatted using a set of predefined string #Control codes now= datetime.now() #get the current date and time #%c - local date and time, %x-local's date, %X- local's time print now.strftime("%c") print now.strftime("%x") print now.strftime("%X") ##### Time Formatting #### #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM print now.strftime("%I:%M:%S %p") # 12-Hour:Minute:Second:AM print now.strftime("%H:%M") # 24-Hour:Minute if __name__== "__main__": main()
# # Example file for working with timedelta objects # from datetime import date from datetime import time from datetime import datetime from datetime import timedelta # construct a basic timedelta and print it print timedelta(days=365, hours=8, minutes=15) # print today's date print "today is: " + str(datetime.now()) # print today's date one year from now print "one year from now it will be:" + str(datetime.now() + timedelta(days=365)) # create a timedelta that uses more than one argument # print "in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4)) # How many days until New Year's Day? today = date.today() # get todays date nyd = date(today.year, 1, 1) # get New Year Day for the same year # use date comparison to see if New Year Day has already gone for this year # if it has, use the replace() function to get the date for next year if nyd < today: print "New Year day is already went by %d days ago" % ((today - nyd).days)



















