Python DatoTid, TidDelta, Strftime(Format) med eksempler
Datotime-klasserne ind Python er kategoriseret 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 abstrakt klasse til at håndtere 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.
Disse importerklæringer er foruddefinerede dele af funktionalitet i Python bibliotek, der lader dig manipulere datoer og tidspunkter 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 Python. Vi skriver ikke koden til denne datofunktionalitet, desværre importerer vi den bare til vores brug
Trin 2) Dernæst opretter vi en instans af datoobjektet.
Trin 3) Dernæst udskriver vi datoen og kører koden.
Outputtet er som forventet.
Udskriv dato ved hjælp af date.today()
date.today
Funktionen har flere egenskaber tilknyttet. Vi kan printe enkelt dag/måned/år og mange andre ting
Lad os se et eksempel
Dagens ugedagsnummer
Date.today()-funktionen giver dig også ugedagsnummeret. 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.
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.
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å ringe til time class.
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.
Okay, så du kan se, at her har jeg dato og klokkeslæt. Og så den næste linje, jeg har lige tiden for sig selv
Trin 3) Vi vil anvende vores ugedagsindekser på vores ugedags arrayList for at vide, hvilken dag der er i dag
- Ugedage-operatør (wd) tildeles nummeret fra (0-6) afhængigt af, hvad den aktuelle ugedag er. Her erklærede vi rækken af listen for dage (man, tirsdag, 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."
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()
Fra nu af har vi lært, hvordan man bruger datetime og dato 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.
- 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
Trin 3) Strf-funktionen kan erklære dato, dag, måned og år separat. Også med små ændringer i kontrolkoden i strftime-funktionen kan du formatere tekstens stil.
Inde i strftime-funktionen, hvis du erstatter (%a) med stort A, dvs. (%A), vil outputtet blive udskrevet som "Firday" i stedet for blot en forkortelse "Fri".
Trin 4) Ved hjælp af "Strftime"-funktionen kan vi også hente lokal systemtid, dato eller begge dele.
- %C- angiver den lokale dato og tid
- %x- angiver den lokale dato
- %X- angiver den lokale tid
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.
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 hovedsageligt til at beregne varigheden mellem to datoer og tidspunkter. Det bruges også til at hente objektet med en vis deltadato og tid. Tidsdelta-objektet understøtter matematiske operationer som addition, subtraktion, 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 fortiden. Lad 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
- Skriv importerklæring for tidsdelta
- Skriv nu koden for at udskrive objekt fra tidsdelta som vist på skærmbilledet
- Kør koden. Tidsdeltaet repræsenterer et spænd på 365 dage, 8 timer og 15 minutter og udskriver det samme
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
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.
Trin 4) Et andet eksempel på, hvordan tidsdelta kan bruges til at beregne fremtidig dato ud fra nuværende dato og klokkeslæt
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
- if nyd < i dag: sammenligner om den aktuelle dato er større end det nye å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
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
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)
Resumé
For at manipulere datoer og tidspunkter på både enkle og komplekse måder leverer datetime-modulet forskellige klasser eller kategorier som f.eks.
- 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 abstrakt klasse til at håndtere tidszoner
Brug af datetime-objekter
- Import af datetime-objekter før udførelse af koden er obligatorisk
- Brug af date.today-funktion til udskrivning af individuel dato/måned/år samt indeksering af dagen
- Brug af date.time-objekt til at få tid i timer, minutter, sekunder og millisekunder
Formatering af time-out med "str f tidsfunktion"
- Brug "str f tidsfunktion" til at ændre årets format
- Udskriv dag, dato, måned og år separat,
- Opkaldstid for ethvert format 12 timer eller 24 timer
Tidsdelta objekter
- Med tidsdelta-objekter kan du estimere tiden for både fremtiden og fortiden
- Beregn det samlede antal dage tilbage for den særlige dag (fødselsdag) fra det aktuelle tidspunkt
- Beregn det samlede antal dage, der er gået for en særlig dag (fødselsdag) fra det aktuelle tidspunkt