Python DatoTid, TidDelta, Strftime(Format) med eksempler

โšก Smart opsummering

Python datetime hรฅndterer, sammen med klasserne date, time og timedelta, datoer, klokkeslรฆt og intervaller som objekter. Datetime-modulet formaterer output med strftime(), analyserer strenge og beregner fremtidige eller tidligere รธjeblikke ved hjรฆlp af timedelta-aritmetik.

  • ๐Ÿ”˜ Fem klasser: Datetime-modulet grupperer klasserne date, time, datetime, timedelta og tzinfo til dato- og tidsarbejde.
  • โ˜‘๏ธ Nuvรฆrende vรฆrdier: datetime.now() og date.today() returnerer den aktuelle dato og det aktuelle klokkeslรฆt, inklusive ugedagens nummer.
  • โœ… Formatering: Funktionen strftime() omdanner en datetime til lรฆsbar tekst ved hjรฆlp af kontrolkoder som %Y, %A og %H.
  • ๐Ÿงช Timedelta: Et timedelta-objekt mรฅler en varighed og forudsiger fremtidige eller tidligere datoer gennem addition og subtraktion.traction.
  • ๐Ÿ› ๏ธ Direktiver: De samme kontrolkoder styrer strftime() for output og strptime() for at lรฆse en streng tilbage til en datetime.
  • ๐Ÿค– AI-arbejdsgange: Maskinlรฆringspipelines udleder dato- og klokkeslรฆtsfunktioner sรฅsom ugedag og time til tidsseriemodeller.

Python DateTime

In Python, dato, klokkeslรฆt og datetime Klasser tilbyder en rรฆkke funktioner til at hรฅndtere datoer, klokkeslรฆt og tidsintervaller. Dato og dato- og klokkeslรฆt i Python er objekter, sรฅ nรฅr du manipulerer dem, manipulerer du faktisk objekter og ikke strenge eller tidsstempler. Nรฅr du manipulerer datoer eller klokkeslรฆt, skal du importere datetime-modulet.

Datotime-klasserne ind Python er opdelt i 5 hovedklasser.

  • dato โ€“ Manipuler kun dato (mรฅned, dag, รฅr)
  • tid โ€“ Tid uafhรฆngig af dagen (time, minut, sekund, mikrosekund)
  • datetime โ€“ Kombination af tid og dato (mรฅned, dag, รฅr, time, sekund, mikrosekund)
  • timedelta โ€” En varighed af tid, der bruges til at manipulere datoer
  • tzinfoโ€” En mavemuskeltract-klasse til hรฅndtering af tidszoner

Sรฅdan bruger du Dato & DateTime Class

Trin 1) Fรธr du kรธrer koden til datetime-format i Python, er det vigtigt, at du importerer Python dato klokkeslรฆt moduler som vist pรฅ skรฆrmbilledet nedenfor.

Brug Dato & DateTime Class

Disse importerklรฆringer er foruddefinerede dele af funktionalitet i Python bibliotek, der lader dig manipulere datoer og klokkeslรฆt uden at skrive nogen kode.

Overvej fรธlgende punkter, fรธr du udfรธrer Python datetime format kode

from datetime import date

Denne linje fortรฆller Python tolk til at importere datoklassen fra datetime-modulet PythonVi skriver ikke koden til denne datofunktionalitet, men importerer den blot til vores brug.

Udskriv dato ved hjรฆlp af date.today()

Funktionen date.today() har flere tilknyttede egenskaber. Vi kan udskrive den enkelte dag/mรฅned/รฅr og mange andre ting.

Lad os se et eksempel

Udskriv dato ved hjรฆlp af date.today()

Dagens ugedagsnummer

Funktionen date.today() giver dig ogsรฅ ugedagens nummer. Her er ugedagstabellen, som starter med Monday som 0 og sรธndag som 6.

Dag Ugedag nummer
Monday 0
Tirsdag 1
Onsdag 2
Torsdag 3
Fredag 4
lรธrdag 5
Sรธndag 6

Weekday Number er nyttigt for arrays, hvis indeks er afhรฆngig af ugedagen.

Udskriv dato ved hjรฆlp af date.today()

Trin 2) Dernรฆst opretter vi en instans af datoobjektet.

Brug Dato & DateTime Class

Trin 3) Dernรฆst udskriver vi datoen og kรธrer koden.

Brug Dato & DateTime Class

Outputtet er som forventet.

Python Aktuel dato og tid: nu() i dag()

Trin 1) Ligesom Dato Objects kan vi ogsรฅ bruge "DATETIME OBJECTS" in Python. Python dato- og tidsobjekter angiver dato sammen med tid i timer, minutter, sekunder og millisekunder.

Python Aktuel dato og tid

Nรฅr vi udfรธrer koden for datetime, giver den outputtet med aktuel dato og klokkeslรฆt.

Trin 2) Med "DATETIME OBJECT" kan du ogsรฅ kalde time-klassen. Antag, at vi kun vil udskrive det aktuelle klokkeslรฆt uden datoen.

t = datetime.time(datetime.now())
  • Vi havde importeret tidsklassen. Vi vil tildele den den aktuelle vรฆrdi af tid ved hjรฆlp af datetime.now()
  • Vi tildeler vรฆrdien af โ€‹โ€‹den aktuelle tid til variablen t.

Og det vil give mig lige tid. Sรฅ lad os kรธre dette program.

Python Aktuel dato og tid

Okay, sรฅ du kan se, at her har jeg dato og klokkeslรฆt. Og sรฅ pรฅ den nรฆste linje har jeg bare klokkeslรฆttet alene.

Trin 3) Vi anvender vores ugedagsindekser pรฅ vores ugedags array-liste for at finde ud af, hvilken dag det er i dag.

  • Ugedagsoperatoren (wd) tildeles et tal fra (0-6) afhรฆngigt af den aktuelle ugedag. Her deklarerede vi listens array for dage (man, tir, onsโ€ฆsรธn).
  • Brug denne indeksvรฆrdi til at vide, hvilken dag det er. I vores tilfรฆlde er det #2, og det reprรฆsenterer onsdag, sรฅ i outputtet vil det udskrive "Hvilket er en onsdag."

Python Aktuel dato og tid

Her er den komplette kode for at fรฅ aktuel dato og klokkeslรฆt ved hjรฆlp af datetime nu

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()

Sรฅdan formateres dato og tidsoutput med Strftime()

Indtil videre har vi lรฆrt, hvordan man bruger datetime og date objekt i Python. Vi gรฅr et skridt videre og lรฆrer, hvordan man bruger en formateringsfunktion til at formatere tid og dato.

Trin 1) Fรธrst vil vi se et enkelt trin til, hvordan man formaterer รฅret. Det er bedre at forstรฅ med et eksempel.

Formater dato og tidsoutput med Strftime()

  • Vi brugte "strftime-funktion" til formatering.
  • Denne funktion bruger forskellige kontrolkode at give et output.
  • Hver kontrolkode ligner forskellige parametre som รฅr, mรฅned, ugedag og dato [(%y/%Y โ€“ ร…r), (%a/%A- ugedag), (%b/%B- mรฅned), (%d โ€“ dag i mรฅneden)] .
  • I vores tilfรฆlde er det ("%Y") som ligner รฅrstal, udskriver det hele รฅret med รฅrhundredet (f.eks. 2018).

Trin 2) Hvis du nu erstatter (โ€œ%Yโ€) med smรฅ bogstaver, dvs. (โ€œ%y) og udfรธrer koden, vil output kun vise (18) og ikke (2018). ร…rets รฅrhundrede vises ikke som vist pรฅ skรฆrmbilledet nedenfor

Formater dato og tidsoutput med Strftime()

Trin 3) Strf-funktionen kan angive dato, dag, mรฅned og รฅr separat. Med smรฅ รฆndringer i kontrolkoden i strftime-funktionen kan du ogsรฅ formatere tekstens stil.

Formater dato og tidsoutput med Strftime()

Hvis du i strftime-funktionen erstatter (%a) med et stort A, dvs. (%A), vil outputtet udskrives som "Fredag" i stedet for blot forkortelsen "Fre".

Formater dato og tidsoutput med Strftime()

Trin 4) Ved hjรฆlp af "Strftime"-funktionen kan vi ogsรฅ hente lokal systemtid, dato eller begge dele.

  1. %C- angiver den lokale dato og tid
  2. %x- angiver den lokale dato
  3. %X- angiver den lokale tid

Formater dato og tidsoutput med Strftime()

I outputtet kan du se resultatet som forventet

Trin 5) "Strftime-funktionen" giver dig mulighed for at kalde tiden i ethvert format 24 timer eller 12 timer.

Formater dato og tidsoutput med Strftime()

Bare ved at definere kontrolkode som %I/H for time, % M for minut, %S for sekund, kan man kalde tid for forskellige formater

12 timer tid er erklรฆret [print now.strftime(โ€œ%I:%M:%S %p) ]

24 timer tiden er erklรฆret [print now.strftime(โ€œ%H:%Mโ€)]

Her er den komplette kode til at konvertere datetime til String-objekt.

#
#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()

Hvad er Timedelta i Python?

Tidsdelta ind Python er et objekt, der reprรฆsenterer varigheden. Det bruges primรฆrt til at beregne varigheden mellem to datoer og klokkeslรฆt. Det bruges ogsรฅ til at hente objektet med en delta-dato og -klokkeslรฆt. Timedelta-objektet understรธtter matematiske operationer som additioner, subfunktionertractioner, multiplikation, division osv.

Sรฅdan bruges Timedelta-objekter

Med Python timedelta-objekter, kan du estimere tiden for bรฅde fremtiden og fortiden. Med andre ord er det et tidsrum at forudsige enhver speciel dag, dato eller tid.

Husk at denne funktion ikke er til at udskrive tid eller dato, men noget at BEREGNE om fremtiden eller fortidenLad os se en Python timedelta eksempel for at forstรฅ det bedre.

Trin 1) For at kรธre Timedelta Objects skal du fรธrst erklรฆre importsรฆtningen og derefter udfรธre koden

  1. Skriv importerklรฆring for tidsdelta
  2. Skriv nu koden for at udskrive objekt fra tidsdelta som vist pรฅ skรฆrmbilledet
  3. Kรธr koden. Tidsdeltaet reprรฆsenterer et spรฆnd pรฅ 365 dage, 8 timer og 15 minutter og udskriver det samme

Tidsdelta objekter

Forvirrende? Nรฆste trin vil hjรฆlpe-

Trin 2) Lad os fรฅ dagens dato og klokkeslรฆt for at kontrollere, om vores importerklรฆring fungerer godt. Nรฅr koden udfรธres, udskriver den dagens dato, hvilket betyder, at vores importerklรฆring fungerer godt

Tidsdelta objekter

Trin 3) Vi vil se, hvordan vi kan hente dato et รฅr fra nu gennem deltaobjekter. Nรฅr vi kรธrer koden, giver den output som forventet.

Tidsdelta objekter

Trin 4) Et andet eksempel pรฅ, hvordan tidsdelta kan bruges til at beregne fremtidig dato ud fra nuvรฆrende dato og klokkeslรฆt

Tidsdelta objekter

Trin 5) Lad os se pรฅ et mere komplekst eksempel. Jeg vil gerne bestemme, hvor mange dage der gรฅr over nytรฅr. Sรฅdan gรฅr vi videre

  • Ved at bruge today= date.today() fรฅr vi dagens dato
  • Vi ved, at det nye รฅr altid er den 1. januar, men รฅret kan vรฆre anderledes. Ved at bruge nyd= date(today.year,1,1) gemmer vi det nye รฅr i variabel nyd
  • hvis nyd < i dag: sammenligner om den aktuelle dato er stรธrre end nytรฅr. Hvis ja, gรฅr den ind i while-lรธkken
  • ((today-nyd).days) angiver forskellen mellem en aktuel dato og nytรฅr i DAYS

Tidsdelta objekter

Outputtet viser, at "Nytรฅrsdag gik allerede for 11 dage siden."

Her er den komplette arbejdskode

#
# 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 Eksempel

Fรธlgende eksempler viser de samme dato- og tidsoperationer, der er skrevet for Python 2, hvor print er en sรฆtning snarere end en funktion. Brug kun disse versioner, nรฅr du vedligeholder รฆldre versioner. Python 2 kode.

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)

Ofte Stillede Spรธrgsmรฅl

Brug datetime.strptime(text, format) til at parse en streng ind i et datetime-objekt. Send de samme direktiver som strftime(), sรฅ "2018-06-29" lรฆses med "%Y-%m-%d". Som det modsatte af strftime() omdanner strptime() menneskelig lรฆsbar tekst tilbage til en datetime, du kan beregne med.

En datetime uden tzinfo er naiv; at tilknytte en tidszone gรธr den opmรฆrksom pรฅ det. Brug det indbyggede zoneinfo-modul (Python 3.9+) eller pytz-pakken til at lokalisere datoer og klokkeslรฆt, og konverter derefter mellem zoner, sรฅ beregningerne forbliver korrekte pรฅ tvรฆrs af regioner.

Kald timestamp()-metoden pรฅ et datetime for at fรฅ sekunderne siden Unix-epoken som en float, for eksempel datetime.now().timestamp(). For at gรฅ den anden vej genopbygger datetime.fromtimestamp(value) et datetime fra et Unix-tidsstempel.

Begge returnerer den aktuelle lokale dato og tid, men datetime.now() accepterer et valgfrit tidszoneargument, mens datetime.today() ikke gรธr. For tidszonebevidst kode foretrรฆkkes datetime.now(tz), sรฅ resultatet bรฆrer det korrekte offset i stedet for at forblive naivt.

Ja. Dato- og tidsmodulet leveres med Python, sรฅ pip-installation er ikke nรธdvendig. Importer den med "from datetime import datetime, date, time, timedelta", og klasserne date, time, datetime, timedelta og tzinfo bliver tilgรฆngelige med det samme.

Kald isoformat()-metoden for at fรฅ en standard ISO 8601-streng, f.eks. "2018-06-29T08:15:27". For et date-objekt returnerer den "YYYY-MM-DD". isoformat() behรธver ingen kontrolkoder, i modsรฆtning til strftime(), som bygger brugerdefinerede layouts ud fra direktiver.

Maskinlรฆringspipelines omdanner rรฅ tidsstempler til funktioner som ugedag, time, mรฅned og forlรธbet tid ved hjรฆlp af datetime og timedelta. Disse konstruerede datofunktioner hjรฆlper tidsseriemodeller og AI-prognosesystemer med at registrere sรฆsonbestemte og cykliske mรธnstre.

Ja. GitHub Copilot og agentic AI-assistenter genererer strftime()-formatstrenge, timedelta-aritmetik og tidszonekonverteringer fra en kort kommentar og kan forklare kryptiske direktiver. Kรธr altid den foreslรฅede kode, da datohรฅndtering og offsets er lette at fรฅ fejl i.

Opsummer dette indlรฆg med: