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: