Python DatoTid, TidDelta, Strftime(Format) med eksempler

โšก Smart oppsummering

Python datetime, sammen med klassene date, time og timedelta, hรฅndterer datoer, klokkeslett og intervaller som objekter. Datetime-modulen formaterer utdata med strftime(), analyserer strenger og beregner fremtidige eller tidligere รธyeblikk ved hjelp av timedelta-aritmetikk.

  • ๐Ÿ”˜ Fem klasser: Datetime-modulen grupperer klassene date, time, datetime, timedelta og tzinfo for dato- og klokkeslettarbeid.
  • โ˜‘๏ธ Nรฅvรฆrende verdier: datetime.now() og date.today() returnerer nรฅvรฆrende dato og klokkeslett, inkludert ukedagsnummeret.
  • โœ… Formatering: Funksjonen strftime() gjรธr om en datetime til lesbar tekst ved hjelp av kontrollkoder som %Y, %A og %H.
  • ๐Ÿงช Timedelta: Et timedelta-objekt mรฅler en varighet og forutsier fremtidige eller tidligere datoer gjennom addisjon og subtraksjon.tracsjon.
  • ๐Ÿ› ๏ธ Direktiver: De samme kontrollkodene driver strftime() for utdata og strptime() for รฅ lese en streng tilbake til en datetime.
  • ๐Ÿค– AI-arbeidsflyter: Maskinlรฆringsrรธrledninger utleder dato- og klokkeslettfunksjoner som ukedag og time for tidsseriemodeller.

Python Dato tid

In Python, dato, klokkeslett og datoklokkeslett Klasser tilbyr en rekke funksjoner for รฅ hรฅndtere datoer, klokkeslett og tidsintervaller. Dato og dato og klokkeslett i Python er objekter, sรฅ nรฅr du manipulerer dem, manipulerer du faktisk objekter og ikke strenger eller tidsstempler. Nรฅr du manipulerer datoer eller klokkeslett, mรฅ du importere datetime-modulen.

Datotime-klassene inn Python er delt inn i 5 hovedklasser.

  • dato โ€“ Manipuler bare dato (mรฅned, dag, รฅr)
  • tid โ€“ Tid uavhengig av dagen (time, minutt, sekund, mikrosekund)
  • datetime โ€“ Kombinasjon av tid og dato (mรฅned, dag, รฅr, time, sekund, mikrosekund)
  • timedelta โ€“ En varighet av tid brukt til รฅ manipulere datoer
  • tzinfoโ€” En magemuskeltract-klasse for hรฅndtering av tidssoner

Slik bruker du Dato & DateTime Class

Trinn 1) Fรธr du kjรธrer koden for datetime-format i Python, er det viktig at du importerer Python dato klokkeslett-moduler som vist pรฅ skjermbildet nedenfor.

Bruk Dato & DateTime Class

Disse importsetningene er forhรฅndsdefinerte deler av funksjonalitet i Python bibliotek som lar deg manipulere datoer og klokkeslett uten รฅ skrive noen kode.

Vurder fรธlgende punkter fรธr du utfรธrer Python datetime format kode

from datetime import date

Denne linjen forteller Python tolk for รฅ importere datoklassen fra datetime-modulen inn PythonVi skriver ikke koden for denne datofunksjonaliteten, men importerer den bare til vรฅr bruk.

Skriv ut dato med date.today()

Funksjonen date.today() har flere tilknyttede egenskaper. Vi kan skrive ut den individuelle dagen/mรฅneden/รฅret og mange andre ting.

La oss se et eksempel

Skriv ut dato med date.today()

Dagens ukedagnummer

Funksjonen date.today() gir deg ogsรฅ ukedagsnummeret. Her er ukedagstabellen som starter med Monday som 0 og sรธndag som 6.

Dag Ukedagnummer
Monday 0
tirsdag 1
onsdag 2
Torsdag 3
Fredag 4
lรธrdag 5
Sรธndag 6

Ukedagnummer er nyttig for matriser hvis indeks er avhengig av ukedagen.

Skriv ut dato med date.today()

Trinn 2) Deretter lager vi en forekomst av datoobjektet.

Bruk Dato & DateTime Class

Trinn 3) Deretter skriver vi ut datoen og kjรธrer koden.

Bruk Dato & DateTime Class

Utdataene er som forventet.

Python Gjeldende dato og klokkeslett: nรฅ() i dag()

Trinn 1) I likhet med Datoobjekter kan vi ogsรฅ bruke ยซDATETIME OBJECTSยป in Python. Python dato- og klokkeslettobjekter gir dato sammen med tid inn timer, minutter, sekunder og millisekunder.

Python Gjeldende dato og klokkeslett

Nรฅr vi kjรธrer koden for datetime, gir den utdata med gjeldende dato og klokkeslett.

Trinn 2) Med ยซDATETIME OBJECTยป kan du ogsรฅ kalle time-klassen. Anta at vi bare vil skrive ut gjeldende klokkeslett uten datoen.

t = datetime.time(datetime.now())
  • Vi hadde importert timeklassen. Vi vil tilordne den gjeldende verdien av tid ved รฅ bruke datetime.now()
  • Vi tildeler verdien av gjeldende tid til variabelen t.

Og dette vil gi meg bare tid. Sรฅ la oss kjรธre dette programmet.

Python Gjeldende dato og klokkeslett

Greit, sรฅ du kan se at her har jeg dato og klokkeslett. Og pรฅ neste linje har jeg bare klokkeslettet alene.

Trinn 3) Vi vil bruke ukedagsindekseren vรฅr pรฅ ukedagens array-liste for รฅ vite hvilken dag som er i dag.

  • Ukedagsoperatoren (wd) tildeles et tall fra (0-6) avhengig av hva den gjeldende ukedagen er. Her deklarerte vi listens array for dager (man, tir, onsโ€ฆsรธn).
  • Bruk den indeksverdien for รฅ vite hvilken dag det er. I vรฅrt tilfelle er det #2, og det representerer onsdag, sรฅ i utdataene vil det skrives ut "Som er en onsdag."

Python Gjeldende dato og klokkeslett

Her er den komplette koden for รฅ fรฅ gjeldende dato og klokkeslett ved รฅ bruke datetime nรฅ

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

Hvordan formatere dato og klokkeslett med Strftime()

Sรฅ langt har vi lรฆrt hvordan vi bruker datetime og date objekt i Python. Vi vil gรฅ et skritt videre og lรฆre hvordan du bruker en formateringsfunksjon for รฅ formatere tid og dato.

Trinn 1) Fรธrst vil vi se et enkelt trinn for hvordan du formaterer รฅret. Det er bedre รฅ forstรฅ med et eksempel.

Formater dato og klokkeslett med Strftime()

  • Vi brukte ยซstrftime-funksjonยป for formatering.
  • Denne funksjonen bruker forskjellig kontrollkode รฅ gi en utgang.
  • Hver kontrollkode ligner pรฅ forskjellige parametere som รฅr, mรฅned, ukedag og dato [(%y/%Y โ€“ รฅr), (%a/%A- ukedag), (%b/%B- mรฅned), (%d โ€“ dag i mรฅneden)] .
  • I vรฅrt tilfelle er det det ("%Y") som ligner รฅr, skriver den ut hele รฅret med รฅrhundret (f.eks. 2018).

Trinn 2) Hvis du nรฅ erstatter (โ€œ%Yโ€) med smรฅ bokstaver, dvs. (โ€œ%y) og kjรธrer koden, vil utdata bare vise (18) og ikke (2018). ร…rets รฅrhundre vil ikke vises som vist pรฅ skjermbildet nedenfor

Formater dato og klokkeslett med Strftime()

Trinn 3) Strf-funksjonen kan deklarere dato, dag, mรฅned og รฅr separat. Med smรฅ endringer i kontrollkoden i strftime-funksjonen kan du ogsรฅ formatere tekststilen.

Formater dato og klokkeslett med Strftime()

Hvis du erstatter (%a) med stor A inne i strftime-funksjonen, dvs. (%A), vil resultatet skrives ut som ยซfredagยป i stedet for bare forkortelsen ยซfreยป.

Formater dato og klokkeslett med Strftime()

Trinn 4) Ved hjelp av ยซStrftimeยป-funksjonen kan vi ogsรฅ hente lokal systemtid, dato eller begge deler.

  1. %C- indikerer lokal dato og klokkeslett
  2. %x- indikerer den lokale datoen
  3. %X- indikerer lokal tid

Formater dato og klokkeslett med Strftime()

I utgangen kan du se resultatet som forventet

Trinn 5) "Strftime-funksjonen" lar deg ringe tiden i alle formater 24 timer eller 12 timer.

Formater dato og klokkeslett med Strftime()

Bare ved รฅ definere kontrollkode som %I/H for time, % M for minutt, %S for sekund, kan man ringe tid for forskjellige formater

12 timer tiden er deklarert [print now.strftime(โ€œ%I:%M:%S %p) ]

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

Her er den komplette koden for รฅ 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()

Hva er Timedelta i Python?

Tidsdelta inn Python er et objekt som representerer varigheten. Det brukes hovedsakelig til รฅ beregne varigheten mellom to datoer og klokkeslett. Det brukes ogsรฅ til รฅ hente objektet med en delta-dato og -klokkeslett. timedelta-objektet stรธtter matematiske operasjoner som addisjoner, subtraksjonertracsjoner, multiplikasjon, divisjon osv.

Hvordan bruke Timedelta-objekter

Med Python timedelta-objekter, kan du estimere tiden for bรฅde fremtiden og fortiden. Det er med andre ord et tidsrom for รฅ forutsi en spesiell dag, dato eller klokkeslett.

Husk at denne funksjonen ikke er for รฅ skrive ut klokkeslett eller dato, men noe รฅ BEREGNE om fremtiden eller fortidenLa oss se en Python timedelta eksempel for รฅ forstรฅ det bedre.

Trinn 1) For รฅ kjรธre Timedelta Objects, mรฅ du fรธrst deklarere importsetningen og deretter utfรธre koden

  1. Skriv importsetning for timedelta
  2. Skriv nรฅ koden for รฅ skrive ut objekt fra tidsdelta som vist pรฅ skjermbildet
  3. Kjรธr koden. Tidsdeltaet representerer et spenn pรฅ 365 dager, 8 timer og 15 minutter og skriver ut det samme

Tidsdelta objekter

Forvirrende? Neste trinn vil hjelpe-

Trinn 2) La oss fรฅ dagens dato og klokkeslett for รฅ sjekke om importerklรฆringen vรฅr fungerer bra. Nรฅr koden kjรธres, skriver den ut dagens dato, noe som betyr at importerklรฆringen vรฅr fungerer bra

Tidsdelta objekter

Trinn 3) Vi vil se hvordan vi kan hente dato om ett รฅr gjennom deltaobjekter. Nรฅr vi kjรธrer koden, gir den utdata som forventet.

Tidsdelta objekter

Trinn 4) Et annet eksempel pรฅ hvordan tidsdelta kan brukes til รฅ beregne fremtidig dato fra gjeldende dato og klokkeslett

Tidsdelta objekter

Trinn 5) La oss se pรฅ et mer komplekst eksempel. Jeg vil gjerne finne ut hvor mange dager over nyttรฅr. Slik gรฅr vi frem

  • Ved รฅ bruke today= date.today() fรฅr vi dagens dato
  • Vi vet at det nye รฅret alltid er 1. januar, men รฅret kan bli annerledes. Ved รฅ bruke nyd= date(today.year,1,1) lagrer vi det nye รฅret i variabel nyd
  • hvis nyd < i dag: sammenligner om gjeldende dato er stรธrre enn nyttรฅr. Hvis ja, gรฅr den inn i while-lรธkken
  • ((today-nyd).days) gir forskjellen mellom en gjeldende dato og nytt รฅr i DAYS

Tidsdelta objekter

Utdataene viser at "Nyttรฅrsdagen gikk allerede for 11 dager siden."

Her er den komplette arbeidskoden

#
# 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 klokkeslettoperasjonene som er skrevet for Python 2, hvor print er en setning snarere enn en funksjon. Bruk disse versjonene kun nรฅr du vedlikeholder eldre versjoner. 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)

Spรธrsmรฅl og svar

Bruk datetime.strptime(text, format) for รฅ analysere en streng til et datetime-objekt. Send de samme direktivene som strftime() bruker, slik at ยซ2018-06-29ยป leses med ยซ%Y-%m-%dยป. Som det motsatte av strftime(), gjรธr strptime() menneskelig lesbar tekst tilbake til en datetime du kan beregne med.

En datetime uten tzinfo er naivt; รฅ legge til en tidssone gjรธr den oppmerksom. Bruk den innebygde zoneinfo-modulen (Python 3.9+) eller pytz-pakken for รฅ lokalisere datoer og klokkeslett, og deretter konvertere mellom soner slik at beregningene forblir korrekte pรฅ tvers av regioner.

Kall timestamp()-metoden pรฅ en datetime for รฅ fรฅ sekundene siden Unix-epoken som en flyttall, for eksempel datetime.now().timestamp(). For รฅ gรฅ den andre veien, gjenoppbygger datetime.fromtimestamp(value) en datetime fra et Unix-tidsstempel.

Begge returnerer gjeldende lokale dato og klokkeslett, men datetime.now() aksepterer et valgfritt tidssoneargument, mens datetime.today() ikke gjรธr det. For tidssonebevisst kode, foretrekk datetime.now(tz) slik at resultatet har riktig forskyvning i stedet for รฅ forbli naivt.

Ja. Dato- og klokkeslettmodulen leveres med Python, sรฅ ingen pip-installasjon er nรธdvendig. Importer den med ยซfrom datetime import datetime, date, time, timedeltaยป, og klassene date, time, datetime, timedelta og tzinfo blir tilgjengelige umiddelbart.

Kall isoformat()-metoden for รฅ fรฅ en standard ISO 8601-streng, for eksempel ยซ2018-06-29T08:15:27ยป. For et datoobjekt returnerer den ยซYYYY-MM-DDยป. isoformat() trenger ingen kontrollkoder, i motsetning til strftime(), som bygger tilpassede oppsett fra direktiver.

Maskinlรฆringsrรธrledninger gjรธr rรฅ tidsstempler om til funksjoner som ukedag, time, mรฅned og forlรธpt tid ved hjelp av datetime og timedelta. Disse konstruerte datofunksjonene hjelper tidsseriemodeller og AI-prognosesystemer med รฅ oppdage sesongmessige og sykliske mรธnstre.

Ja. GitHub Copilot og agentic AI-assistenter genererer strftime()-formatstrenger, timedelta-aritmetikk og tidssonekonverteringer fra en kort kommentar, og kan forklare kryptiske direktiver. Kjรธr alltid den foreslรฅtte koden, siden datohรฅndtering og forskyvninger er lett รฅ gjรธre feil.

Oppsummer dette innlegget med: