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



















