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.

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.
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
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.
Trinn 2) Deretter lager vi en forekomst av datoobjektet.
Trinn 3) Deretter skriver vi ut datoen og kjรธrer koden.
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.
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.
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."
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.
- 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
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.
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ยป.
Trinn 4) Ved hjelp av ยซStrftimeยป-funksjonen kan vi ogsรฅ hente lokal systemtid, dato eller begge deler.
- %C- indikerer lokal dato og klokkeslett
- %x- indikerer den lokale datoen
- %X- indikerer lokal tid
I utgangen kan du se resultatet som forventet
Trinn 5) "Strftime-funksjonen" lar deg ringe tiden i alle formater 24 timer eller 12 timer.
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
- Skriv importsetning for timedelta
- Skriv nรฅ koden for รฅ skrive ut objekt fra tidsdelta som vist pรฅ skjermbildet
- Kjรธr koden. Tidsdeltaet representerer et spenn pรฅ 365 dager, 8 timer og 15 minutter og skriver ut det samme
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
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.
Trinn 4) Et annet eksempel pรฅ hvordan tidsdelta kan brukes til รฅ beregne fremtidig dato fra gjeldende dato og klokkeslett
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
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)



















