Python DatumTijd, TijdDelta, Strftime (formaat) met voorbeelden
De datetime-klassen in Python zijn onderverdeeld in de 5 belangrijkste klassen.
- 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 abstracte 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 bibliotheek waarmee u 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 Python. We schrijven de code voor deze datumfunctionaliteit niet, maar importeren deze alleen voor ons gebruik
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.
De uitvoer is zoals verwacht.
Datum afdrukken met date.today()
date.today
functie heeft verschillende eigenschappen die eraan zijn gekoppeld. We kunnen individuele dag/maand/jaar en nog veel meer afdrukken
Laten we een voorbeeld bekijken
Het weekdagnummer van vandaag
De functie date.today() geeft u ook het nummer van de weekdag. 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.
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é, je kunt zien dat ik hier de datum en tijd heb. En dan de volgende regel: ik heb precies de tijd zelf
Stap 3) We zullen onze weekdagindexer toepassen op de arrayList van onze weekdag om te weten welke dag het vandaag is
- Weekdays operator (wd) krijgt het nummer van (0-6) toegewezen, afhankelijk van wat de huidige weekdag is. Hier hebben we de array van de lijst voor dagen gedeclareerd (maandag, dinsdag, woensdag…zondag).
- 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()
Vanaf nu 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.
- Wij gebruikten de “strftime-functie” voor opmaak.
- Deze functie maakt gebruik van verschillende controlecode een uitvoer te geven.
- Elke controlecode lijkt op 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 jaar afzonderlijk declareren. Ook met kleine wijzigingen in de besturingscode in de strftime-functie kunt u de stijl van de tekst opmaken.
Als u binnen de strftime-functie (%a) vervangt door hoofdletter A, dat wil zeggen (%A), wordt de uitvoer afgedrukt als "Firday" in plaats van alleen 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 kunt opladen tijd is gedeclareerd [print now.strftime(“%I:%M:%S %p) ]
24 uur kunt opladen 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 is een object dat de duur vertegenwoordigt. Het wordt voornamelijk gebruikt om de duur tussen twee datums en tijden te berekenen. Het wordt ook gebruikt om het object met een deltadatum en -tijd op te halen. Het timedelta-object ondersteunt wiskundige bewerkingen zoals optellen, aftrekken, vermenigvuldigen, delen, etc.
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 verleden. Laten 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
- if nyd < today: vergelijkt of de huidige datum groter is dan het nieuwe jaar. Indien ja, gaat het de while-lus in
- ((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
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)
Samenvatting
Voor het manipuleren van datums en tijden op zowel eenvoudige als complexe manieren biedt de datetime-module verschillende klassen of categorieën zoals
- 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 abstracte klasse voor het omgaan met tijdzones
Datetime-objecten gebruiken
- Het importeren van datetime-objecten voordat de code wordt uitgevoerd, is verplicht
- Gebruik de date.today-functie voor het afdrukken van individuele datum/maand/jaar en voor het indexeren van de dag
- Met behulp van het date.time-object kunt u de tijd in uren, minuten, seconden en milliseconden ophalen
Time-out formatteren met “str f time function”
- Gebruik de “str f time function” om de notatie van het jaar te wijzigen
- Dag, datum, maand en jaar afzonderlijk afdrukken,
- Oproeptijd voor elk formaat 12 uur of 24 uur
Timedelta-objecten
- Met timedelta-objecten kunt u de tijd voor zowel de toekomst als het verleden schatten
- Bereken het totale aantal resterende dagen voor de speciale dag (verjaardag) vanaf de huidige tijd
- Bereken het totale aantal dagen dat is verstreken voor een speciale dag (verjaardag) vanaf de huidige tijd