Python DatumTid, TidDelta, Strftime(Format) med exempel
โก Smart sammanfattning
Python datetime, tillsammans med klasserna date, time och timedelta, hanterar datum, tider och intervall som objekt. Datetime-modulen formaterar utdata med strftime(), analyserar strรคngar och berรคknar framtida eller tidigare tidpunkter med hjรคlp av timedelta-aritmetik.

In Python, datum, tid och datumtid Klasser tillhandahรฅller ett antal funktioner fรถr att hantera datum, tider och tidsintervall. Datum och datetime i Python รคr objekt, sรฅ nรคr du manipulerar dem manipulerar du faktiskt objekt och inte strรคngar eller tidsstรคmplar. Nรคr du manipulerar datum eller tid mรฅste du importera datetime-modulen.
Datetime klasser in Python รคr indelade i 5 huvudklasser.
- datum โ Manipulera bara datum (mรฅnad, dag, รฅr)
- tid โ Tid oberoende av dagen (timme, minut, sekund, mikrosekund)
- datetime โ Kombination av tid och datum (mรฅnad, dag, รฅr, timme, sekund, mikrosekund)
- tidsdeltaโ En tidslรคngd som anvรคnds fรถr att manipulera datum
- tzinfoโ En magmuskeltract-klass fรถr att hantera tidszoner
Hur man anvรคnder Datum & DateTime Class
steg 1) Innan du kรถr koden fรถr datetime-format i Python, รคr det viktigt att du importerar Python datum och tid moduler som visas i skรคrmdumpen nedan.
Dessa importsatser รคr fรถrdefinierade delar av funktionalitet i Python bibliotek som lรฅter dig manipulera datum och tider utan att skriva nรฅgon kod.
Tรคnk pรฅ fรถljande punkter innan du kรถr Python formatkod fรถr datum och tid
from datetime import date
Denna rad berรคttar fรถr Python tolk fรถr att importera datumklassen frรฅn datetime-modulen PythonVi skriver inte koden fรถr den hรคr datumfunktionen utan importerar den helt enkelt fรถr vรฅr anvรคndning.
Skriv ut datum med date.today()
Funktionen date.today() har flera associerade egenskaper. Vi kan skriva ut den enskilda dagen/mรฅnaden/รฅret och mรฅnga andra saker.
Lรฅt oss se ett exempel
Dagens veckodagsnummer
Funktionen date.today() ger dig ocksรฅ veckodagens nummer. Hรคr รคr veckodagstabellen som bรถrjar med Monday som 0 och sรถndag som 6.
| Dag | WeekDay Number |
|---|---|
| Monday | 0 |
| Tisdag | 1 |
| Onsdag | 2 |
| Torsdag | 3 |
| Fredag | 4 |
| lรถrdag | 5 |
| Sรถndag | 6 |
Weekday Number รคr anvรคndbart fรถr arrayer vars index รคr beroende av veckodagen.
steg 2) Dรคrefter skapar vi en instans av datumobjektet.
steg 3) Dรคrefter skriver vi ut datumet och kรถr koden.
Utgรฅngen รคr som fรถrvรคntat.
Python Aktuellt datum och tid: now() today()
Steg 1) Liksom Date Objects kan vi ocksรฅ anvรคnda "DATUMTIDSOBJEKT" in Python. Python datum- och tidsobjekt ger datum tillsammans med tid in timmar, minuter, sekunder och millisekunder.
Nรคr vi kรถr koden fรถr datetime, ger den utdata med aktuellt datum och tid.
Steg 2) Med "DATETIME OBJECT" kan du ocksรฅ anropa time-klassen. Anta att vi bara vill skriva ut aktuell tid utan datum.
t = datetime.time(datetime.now())
- Vi hade importerat tidsklassen. Vi kommer att tilldela det det aktuella vรคrdet av tiden med datetime.now()
- Vi tilldelar vรคrdet pรฅ den aktuella tiden till variabeln t.
Och detta kommer att ge mig bara tid. Sรฅ lรฅt oss kรถra det hรคr programmet.
Okej, sรฅ du kan se att hรคr har jag datum och tid. Och sedan pรฅ nรคsta rad har jag bara tiden.
Steg 3) Vi kommer att tillรคmpa vรฅr veckodagsindexerare pรฅ vรฅr veckodags arraylista fรถr att veta vilken dag det รคr idag.
- Veckodagsoperatorn (wd) tilldelas ett nummer frรฅn (0-6) beroende pรฅ vilken den aktuella veckodagen รคr. Hรคr deklarerade vi listan med dagar (mรฅn, tis, onsโฆsรถn).
- Anvรคnd det indexvรคrdet fรถr att veta vilken dag det รคr. I vรฅrt fall รคr det #2, och det representerar onsdag, sรฅ i utgรฅngen kommer det att skrivas ut "Vilket รคr en onsdag."
Hรคr รคr den kompletta koden fรถr att fรฅ aktuellt datum och tid med 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()
Hur man formaterar datum och tid med Strftime()
Hittills har vi lรคrt oss hur man anvรคnder datetime och date objekt i Python. Vi kommer att gรฅ ett steg lรคngre och lรคra oss hur man anvรคnder en formateringsfunktion fรถr att formatera tid och datum.
Steg 1) Fรถrst kommer vi att se ett enkelt steg fรถr hur man formaterar รฅret. Det รคr bรคttre att fรถrstรฅ med ett exempel.
- Vi anvรคnde "strftime-funktion" fรถr formatering.
- Denna funktion anvรคnder olika kontrollkod att ge en utgรฅng.
- Varje kontrollkod liknar olika parametrar som รฅr, mรฅnad, veckodag och datum [(%y/%Y โ ร r), (%a/%A- veckodag), (%b/%B- mรฅnad), (%d โ dag i mรฅnaden)] .
- I vรฅrt fall รคr det sรฅ ("%Y") som liknar รฅrtal, den skriver ut hela รฅret med รฅrhundradet (t.ex. 2018).
Steg 2) Om du nu ersรคtter (โ%Yโ) med gemener, dvs (โ%y) och exekverar koden kommer utdata endast att visa (18) och inte (2018). ร rets รฅrhundrade kommer inte att visas som visas i skรคrmdumpen nedan
Steg 3) Strf-funktionen kan deklarera datum, dag, mรฅnad och รฅr separat. Med smรฅ รคndringar i kontrollkoden i strftime-funktionen kan du ocksรฅ formatera textens stil.
Om du inuti strftime-funktionen ersรคtter (%a) med stort A, dvs. (%A), kommer utdata att skrivas ut som "Fredag" istรคllet fรถr bara fรถrkortningen "Fre".
Steg 4) Med hjรคlp av "Strftime"-funktionen kan vi รคven hรคmta lokal systemtid, datum eller bรฅda.
- %C- indikerar lokalt datum och tid
- %x- anger det lokala datumet
- %X- anger lokal tid
I utgรฅngen kan du se resultatet som fรถrvรคntat
Steg 5) "Strftime-funktionen" lรฅter dig anropa tiden i valfritt format 24 timmar eller 12 timmar.
Bara genom att definiera kontrollkod som %I/H fรถr timme, % M fรถr minut, %S fรถr sekund, kan man anropa tid fรถr olika format
12 timmar tiden รคr deklarerad [print now.strftime(โ%I:%M:%S %p) ]
24 timmar tiden รคr deklarerad [print now.strftime(โ%H:%Mโ)]
Hรคr รคr den kompletta koden fรถr att konvertera datetime till 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()
Vad รคr Timedelta i Python?
Tidsdelta in Python รคr ett objekt som representerar varaktigheten. Det anvรคnds huvudsakligen fรถr att berรคkna varaktigheten mellan tvรฅ datum och tider. Det anvรคnds ocksรฅ fรถr att hรคmta objektet med deltadatum och -tid. Timedelta-objektet stรถder matematiska operationer som additioner, subtractioner, multiplikation, division etc.
Hur man anvรคnder Timedelta Objects
Med Python tidsdeltaobjekt kan du uppskatta tiden fรถr bรฅde framtid och dรฅtid. Med andra ord, det รคr en tidsperiod att fรถrutsรคga nรฅgon speciell dag, datum eller tid.
Kom ihรฅg att denna funktion inte รคr till fรถr att skriva ut tid eller datum, utan nรฅgot att BERรKNA om framtiden eller det fรถrflutnaLรฅt oss se en Python timedelta exempel fรถr att fรถrstรฅ det bรคttre.
Steg 1) Fรถr att kรถra Timedelta Objects mรฅste du fรถrst deklarera importsatsen och sedan kรถra koden
- Skriv importsats fรถr tidsdelta
- Skriv nu koden fรถr att skriva ut objekt frรฅn tidsdelta som visas i skรคrmdumpen
- Kรถr koden. Tidsdeltan representerar ett intervall pรฅ 365 dagar, 8 timmar och 15 minuter och skriver ut samma
Fรถrvirrande? Nรคsta steg kommer att hjรคlpa-
Steg 2) Lรฅt oss fรฅ dagens datum och tid fรถr att kontrollera om vรฅrt importutlรฅtande fungerar bra. Nรคr koden exekveras skriver den ut dagens datum vilket betyder att vรฅr importsats fungerar bra
Steg 3) Vi kommer att se hur vi kan hรคmta datum om ett รฅr genom deltaobjekt. Nรคr vi kรถr koden ger den utdata som fรถrvรคntat.
Steg 4) Ett annat exempel pรฅ hur tidsdelta kan anvรคndas fรถr att berรคkna framtida datum frรฅn aktuellt datum och tid
Steg 5) Lรฅt oss titta pรฅ ett mer komplext exempel. Jag skulle vilja bestรคmma hur mรฅnga dagar efter nyรฅr. Sรฅ hรคr gรฅr vi vidare
- Genom att anvรคnda today= date.today() fรฅr vi dagens datum
- Vi vet att det nya รฅret alltid รคr den 1-jan, men รฅret kan bli annorlunda. Med nyd= date(today.year,1,1) lagrar vi det nya รฅret i variabeln nyd
- om nyd < idag: jรคmfรถr om aktuellt datum รคr senare รคn nyรฅr. Om ja, gรฅr den in i while-slingan
- ((idag-nyd).days) ger skillnaden mellan ett aktuellt datum och nytt รฅr i DAYS
Resultatet visar att "nyรฅrsdagen gick redan fรถr 11 dagar sedan."
Hรคr รคr den fullstรคndiga arbetskoden
# # 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 Exempel
Fรถljande exempel visar samma datum- och tidsoperationer skrivna fรถr Python 2, dรคr print รคr en sats snarare รคn en funktion. Anvรคnd dessa versioner endast vid underhรฅll av รคldre versioner. Python 2-kod.
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)



















