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.

  • ๐Ÿ”˜ Vijf klassen: De datetime-module groepeert de klassen date, time, datetime, timedelta en tzinfo voor datum- en tijdbewerkingen.
  • โ˜‘๏ธ Huidige waarden: datetime.now() en date.today() geven de huidige datum en tijd terug, inclusief het weekdagnummer.
  • โœ… Formatteren: De functie strftime() zet een datum en tijd om in leesbare tekst met behulp van besturingscodes zoals %Y, %A en %H.
  • ๐Ÿงช Tijdsverschil: Een timedelta-object meet een tijdsduur en voorspelt toekomstige of voorbije datums door middel van optellen en aftrekken.tractie.
  • ๏ธ richtlijnen: Dezelfde besturingscodes sturen strftime() aan voor de uitvoer en strptime() voor het teruglezen van een tekenreeks naar een datum/tijd-object.
  • ๐Ÿค– AI-workflows: Machine learning-pipelines gebruiken datum- en tijdkenmerken zoals de dag van de week en het uur voor tijdreeksmodellen.

Python Datum Tijd

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.

Gebruik Datum- en DateTime-klasse

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

Datum afdrukken met date.today()

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.

Datum afdrukken met date.today()

Stap 2) Vervolgens maken we een exemplaar van het date-object.

Gebruik Datum- en DateTime-klasse

Stap 3) Vervolgens drukken we de datum af en voeren we de code uit.

Gebruik Datum- en DateTime-klasse

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.

Python Huidige datum en tijd

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.

Python Huidige datum en tijd

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.

Python Huidige datum en tijd

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.

Datum- en tijduitvoer opmaken met Strftime()

  • 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

Datum- en tijduitvoer opmaken met Strftime()

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.

Datum- en tijduitvoer opmaken met Strftime()

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".

Datum- en tijduitvoer opmaken met Strftime()

Stap 4) Met behulp van de โ€œStrftimeโ€ -functie kunnen we ook de lokale systeemtijd, datum of beide ophalen.

  1. %C- geeft de lokale datum en tijd aan
  2. %x- geeft de lokale datum aan
  3. %X- geeft de lokale tijd aan

Datum- en tijduitvoer opmaken met Strftime()

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.

Datum- en tijduitvoer opmaken met Strftime()

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

  1. Schrijf import-statement voor timedelta
  2. Schrijf nu de code om het object uit de tijdsdelta af te drukken zoals weergegeven in de schermafbeelding
  3. Voer de code uit. De timedelta vertegenwoordigt een periode van 365 dagen, 8 uur en 15 minuten en drukt hetzelfde af

Timedelta-objecten

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

Timedelta-objecten

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.

Timedelta-objecten

Stap 4) Een ander voorbeeld van hoe tijdsdelta kan worden gebruikt om toekomstige datums te berekenen op basis van de huidige datum en tijd

Timedelta-objecten

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

Timedelta-objecten

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)

Veelgestelde vragen

Gebruik datetime.strptime(text, format) om een โ€‹โ€‹tekenreeks om te zetten in een datetime-object. Gebruik dezelfde instructies als strftime(), zodat "2018-06-29" wordt weergegeven als "%Y-%m-%d". In tegenstelling tot strftime() zet strptime() leesbare tekst weer om in een datum/tijd-object waarmee je berekeningen kunt uitvoeren.

Een datum/tijd-object zonder tijdzone-informatie is naรฏef; het toevoegen van een tijdzone maakt het object bewust van de tijdzone. Gebruik de ingebouwde zoneinfo-module (Python 3.9+) of het pytz-pakket om datums en tijden te lokaliseren en vervolgens tussen zones te converteren, zodat berekeningen in alle regio's correct blijven.

Roep de timestamp()-methode aan op een datetime om het aantal seconden sinds de Unix-epoch als een float te verkrijgen, bijvoorbeeld datetime.now().timestamp(). Om de omgekeerde richting op te gaan, reconstrueert datetime.fromtimestamp(value) een datetime vanuit een Unix-timestamp.

Beide functies retourneren de huidige lokale datum en tijd, maar `datetime.now()` accepteert een optioneel argument voor de tijdzone, terwijl `datetime.today()` dat niet doet. Voor code die rekening houdt met tijdzones, is het aan te raden `datetime.now(tz)` te gebruiken, zodat het resultaat de juiste offset bevat in plaats van een ongewijzigde waarde te behouden.

Ja. De datum- en tijdmodule wordt meegeleverd. PythonJe hoeft het dus niet via pip te installeren. Importeer het met "from datetime import datetime, date, time, timedelta" en de klassen date, time, datetime, timedelta en tzinfo zijn direct beschikbaar.

Roep de methode isoformat() aan om een โ€‹โ€‹standaard ISO 8601-tekenreeks te verkrijgen, zoals "2018-06-29T08:15:27". Voor een datumobject retourneert deze methode "JJJJ-MM-DD". isoformat() vereist geen besturingscodes, in tegenstelling tot strftime(), dat aangepaste lay-outs bouwt op basis van instructies.

Machine learning-pipelines zetten ruwe tijdstempels om in kenmerken zoals de dag van de week, het uur, de maand en de verstreken tijd met behulp van datetime en timedelta. Deze gecreรซerde datumkenmerken helpen tijdreeksmodellen en AI-voorspellingssystemen bij het detecteren van seizoensgebonden en cyclische patronen.

Ja. GitHub Copilot en AI-assistenten genereren strftime()-opmaakstrings, timedelta-berekeningen en tijdzoneconversies op basis van een korte opmerking, en kunnen cryptische instructies uitleggen. Voer altijd de voorgestelde code uit, aangezien datumverwerking en offsets gemakkelijk fout kunnen gaan.

Vat dit bericht samen met: