Python DatoTid, TidDelta, Strftime(Format) med eksempler
Datotime-klassene inn Python er kategorisert 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 abstrakt klasse for å håndtere 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 Python. Vi skriver ikke koden for denne datofunksjonaliteten, dessverre bare importerer den for vår bruk
Trinn 2) Deretter lager vi en forekomst av datoobjektet.
Trinn 3) Deretter skriver vi ut datoen og kjører koden.
Utgangen er som forventet.
Skriv ut dato med date.today()
date.today funksjonen har flere egenskaper knyttet til seg. Vi kan trykke enkeltdag/måned/år og mange andre ting
La oss se et eksempel
Dagens ukedagnummer
Date.today()-funksjonen 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.
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å ringe timetime.
Anta at vi bare vil skrive ut gjeldende klokkeslett uten dato.
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.
Ok, så du kan se at her har jeg dato og klokkeslett. Og så neste linje, jeg har akkurat tiden alene
Trinn 3) Vi vil bruke ukedagsindekseren vår på ukedagens arrayList for å vite hvilken dag som er i dag
- Ukedagers operatør (wd) tildeles nummeret fra (0-6) nummer avhengig av hva gjeldende ukedag er. Her erklærte vi rekkefølgen på listen 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()
Per nå har vi lært hvordan du bruker datetime og dato 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 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. Også med små endringer i kontrollkoden i strftime-funksjonen kan du formatere stilen til teksten.
Inne i strftime-funksjonen hvis du erstatter (%a) med stor A, dvs. (%A), vil utskriften skrives ut som "Firday" i stedet for bare en forkortelse "Fri".
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. Den brukes hovedsakelig til å beregne varigheten mellom to datoer og klokkeslett. Den brukes også for å hente objektet med en viss deltadato og -klokkeslett. Timedelta-objektet støtter matematiske operasjoner som addisjoner, subtraksjoner, multiplikasjon, divisjon etc.
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 fortiden. La 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
- if nyd < i dag: sammenligner om gjeldende dato er større enn det nye året. 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
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)
Sammendrag
For å manipulere datoer og klokkeslett på både enkle og komplekse måter leverer datetime-modulen forskjellige klasser eller kategorier som
- 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 abstrakt klasse for å håndtere tidssoner
Bruke datetime-objekter
- Import av datetime-objekter før utføring av koden er obligatorisk
- Bruke date.today-funksjonen for å skrive ut individuell dato/måned/år samt indeksering av dagen
- Bruke date.time-objekt for å få tid i timer, minutter, sekunder og millisekunder
Formatering av time-out med "str f-tidsfunksjon"
- Bruk "str f time function" for å endre formatet for året
- Skriv ut dag, dato, måned og år separat,
- Call out tid for alle formater 12 timer eller 24 timer
Tidsdelta objekter
- Med timedelta-objekter kan du estimere tiden for både fremtiden og fortiden
- Beregn totalt antall dager igjen for den spesielle dagen (bursdag) fra gjeldende tidspunkt
- Beregn det totale antallet passerte dager for spesiell dag (bursdag) fra gjeldende tidspunkt



















