Python DateTime, TimeDelta, Strftime(Format) esimerkkien kanssa
Pรคivรคmรครคrรคtunnit sisรครคn Python on luokiteltu 5 pรครคluokkaan.
- pรคivรคmรครคrรค โ Kรคsittele vain pรคivรคmรครคrรครค (kuukausi, pรคivรค, vuosi)
- aika โ pรคivรคstรค riippumaton aika (tunti, minuutti, sekunti, mikrosekunti)
- datetime โ ajan ja pรคivรคmรครคrรคn yhdistelmรค (kuukausi, pรคivรค, vuosi, tunti, sekunti, mikrosekunti)
- timedelta โ Aika, jota kรคytetรครคn pรคivรคmรครคrien kรคsittelyyn
- tzinfo - Abstrakti luokka aikavyรถhykkeiden kรคsittelemiseen
Date & DateTime -luokan kรคyttรคminen
Vaihe 1) Ennen kuin suoritat pรคivรคmรครคrรคn ja aikamuodon koodin Python, on tรคrkeรครค, ettรค tuot Python pรคivรคmรครคrรค-aikamoduulit alla olevan kuvakaappauksen mukaisesti.
Nรคmรค tuontilausekkeet ovat ennalta mรครคritettyjรค toimintoja Python kirjasto, jonka avulla voit muokata pรคivรคmรครคriรค ja aikoja kirjoittamatta mitรครคn koodia.
Harkitse seuraavia kohtia ennen kuin suoritat Python pรคivรคmรครคrรค-ajan muotokoodi
from datetime import date
Tรคmรค rivi kertoo Python tulkki tuodaksesi pรคivรคmรครคrรคluokan datetime-moduulista sisรครคn Python. Emme kirjoita tรคmรคn pรคivรคmรครคrรคtoiminnon koodia, vaan tuomme sen vain kรคyttรถรถn
Vaihe 2) Seuraavaksi luomme pรคivรคmรครคrรคobjektin esiintymรคn.
Vaihe 3) Seuraavaksi tulostamme pรคivรคmรครคrรคn ja suoritamme koodin.
Tulos on odotusten mukainen.
Tulosta pรคivรคmรครคrรค kรคyttรคmรคllรค date.today()
date.today funktioon liittyy useita ominaisuuksia. Voimme tulostaa yksittรคisiรค pรคiviรค/kuukausia/vuosia ja monia muita asioita
Katsotaanpa esimerkki
Tรคmรคn pรคivรคn arkipรคivรคn numero
Date.today()-funktio antaa sinulle myรถs viikonpรคivรคn numeron. Tรคssรค on viikonpรคivรคtaulukko, joka alkaa Monday 0 ja sunnuntaina 6
| Pรคivรค | Viikonpรคivรคn numero |
|---|---|
| Monday | 0 |
| tiistai | 1 |
| Keskiviikko | 2 |
| torstai | 3 |
| Perjantai | 4 |
| Lauantai | 5 |
| Sunnuntai | 6 |
Viikonpรคivรคn numero on hyรถdyllinen taulukoille, joiden indeksi on riippuvainen viikonpรคivรคstรค.
Python Nykyinen pรคivรคmรครคrรค ja aika: nyt() tรคnรครคn()
Vaihe 1) Kuten Date Objects, voimme myรถs kรคyttรครค "DATETIME OBJECTS" in Python. Python pรคivรคmรครคrรค ja aika -objektit antavat pรคivรคmรครคrรคn ja kellonajan tuntia, minuuttia, sekuntia ja millisekuntia.
Kun suoritamme koodin datetimelle, se antaa tulosteen nykyisen pรคivรคmรครคrรคn ja ajan kanssa.
Vaihe 2) "DATETIME OBJECT" -toiminnolla voit kutsua myรถs aikaluokkaa.
Oletetaan, ettรค haluamme tulostaa vain nykyisen ajan ilman pรคivรคmรครคrรครค.
t = datetime.time(datetime.now())
- Olimme tuoneet aikaluokan. Mรครคritรคmme sille nykyisen ajan arvon kรคyttรคmรคllรค datetime.now()
- Annamme muuttujalle t nykyisen ajan arvon.
Ja tรคmรค antaa minulle vain aikaa. Suoritetaan siis tรคmรค ohjelma.
Okei, joten nรคet, ettรค tรคssรค minulla on pรคivรคmรครคrรค ja aika. Ja sitten seuraava rivi, minulla on vain oma aika
Vaihe 3) Kรคytรคmme arkipรคivรคindeksiรคmme viikonpรคivรคn arrayList-luetteloon, jotta tiedรคmme, mikรค pรคivรค on tรคnรครคn
- Viikonpรคivรคoperaattorille (wd) annetaan numero (0-6) sen mukaan, mikรค viikonpรคivรค on. Tรคssรค ilmoitimme listan joukon pรคiville (ma, ti, keโฆsu).
- Kรคytรค tรคtรค indeksiarvoa saadaksesi selville, mikรค pรคivรค on. Meidรคn tapauksessamme se on #2, ja se edustaa keskiviikkoa, joten tulosteessa se tulostaa "Mikรค on keskiviikko".
Tรคssรค on tรคydellinen koodi nykyisen pรคivรคmรครคrรคn ja ajan saamiseksi kรคyttรคmรคllรค datetime now -toimintoa
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()
Pรคivรคmรครคrรคn ja kellonajan muotoilu Strftime()
Tรคhรคn mennessรค olemme oppineet kรคyttรคmรครคn pรคivรคmรครคrรครค ja pรคivรคmรครคrรครค esine sisรครคn Python. Etenemme askeleen pidemmรคlle ja opimme kรคyttรคmรครคn muotoilutoimintoa ajan ja pรคivรคmรครคrรคn muotoiluun.
Vaihe 1) Ensin nรคemme yksinkertaisen vaiheen vuoden muotoilussa. Se on parempi ymmรคrtรครค esimerkin avulla.
- Kรคytimme "strftime-toimintoโ muotoilua varten.
- Tรคmรค toiminto kรคyttรครค erilaisia ohjauskoodi antamaan tulos.
- Jokainen ohjauskoodi muistuttaa erilaisia โโparametreja, kuten vuosi, kuukausi, viikonpรคivรค ja pรคivรคmรครคrรค [(%y/%Y โ vuosi), (%a/%A- arkipรคivรค), (%b/%B- kuukausi), (%d โ kuukauden pรคivรค)] .
- Meidรคn tapauksessamme se on ("%Y") joka muistuttaa vuotta, se tulostaa koko vuoden vuosisadalla (esim. 2018).
Vaihe 2) Jos nyt korvaat ("%Y") pienillรค kirjaimilla, eli ( "%y) ja suoritat koodin, tulos nรคyttรครค vain (18) eikรค (2018). Vuoden vuosisata ei nรคy alla olevan kuvakaappauksen mukaisesti
Vaihe 3) Strf-funktio voi ilmoittaa pรคivรคmรครคrรคn, pรคivรคn, kuukauden ja vuoden erikseen. Myรถs pienillรค muutoksilla ohjauskoodiin strftime-funktiossa voit muotoilla tekstin tyylin.
Strftime-funktion sisรคllรค, jos korvaat (%a) isolla A:lla, eli (%A), tulostetaan "Firday" pelkรคn lyhenteen "Fri" sijaan.
Vaihe 4) Strftime-toiminnon avulla voimme myรถs hakea paikallisen jรคrjestelmรคn ajan, pรคivรคmรครคrรคn tai molemmat.
- %C- osoittaa paikallisen pรคivรคmรครคrรคn ja ajan
- %x- osoittaa paikallista pรคivรคmรครคrรครค
- %X- osoittaa paikallista aikaa
Tulosteessa nรคet odotetun tuloksen
Vaihe 5) Strftime-toiminnon avulla voit soittaa kellonajan missรค tahansa muodossa 24 tuntia tai 12 tuntia.
Vain mรครคrittรคmรคllรค ohjauskoodin, kuten %I/H tunnille, % M minuutille, %S sekunnille, voidaan soittaa aika eri muodoille.
12 tuntia aika on ilmoitettu [print now.strftime("%I:%M:%S %p) ]
24 tuntia aika on ilmoitettu [print now.strftime("%H:%M"]
Tรคssรค on tรคydellinen koodi pรคivรคmรครคrรค-ajan muuntamiseksi String-objektiksi.
#
#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()
Mitรค Timedelta sisรคltรครค Python?
Timedelta sisรครคn Python on objekti, joka edustaa kestoa. Sitรค kรคytetรครคn pรครคasiassa kahden pรคivรคmรครคrรคn ja kellonajan vรคlisen keston laskemiseen. Sitรค kรคytetรครคn myรถs kohteen noutamiseen jollakin delta pรคivรคmรครคrรคllรค ja kellonajalla. Timedelta-objekti tukee matemaattisia operaatioita, kuten yhteen-, vรคhennys-, kerto- ja jakolaskuja jne.
Kuinka kรคyttรครค Timedelta-objekteja
Kanssa Python timedelta-objekteja, voit arvioida sekรค tulevaisuuden ettรค menneisyyden ajan. Toisin sanoen se on aikavรคli minkรค tahansa erityisen pรคivรคn, pรคivรคmรครคrรคn tai kellonajan ennustamiseen.
Muista, ettรค tรคtรค toimintoa ei ole tarkoitettu kellonajan tai pรคivรคmรครคrรคn tulostamiseen, vaan jotain tulevaisuuden tai menneisyyden LASKEMISTA. Katsotaanpa an Python timedelta esimerkki ymmรคrtรครคksesi sen paremmin.
Vaihe 1) Timedelta-objektien suorittamiseksi sinun on ensin mรครคritettรคvรค tuontikรคsky ja suoritettava sitten koodi
- Kirjoita aikadeltan tuontilausunto
- Kirjoita nyt koodi tulostaaksesi objektin aika-deltasta kuvakaappauksen mukaisesti
- Suorita koodi. Aikadelta edustaa 365 pรคivรครค, 8 tuntia ja 15 minuuttia ja tulostaa saman
Hรคmmentรคvรค? Seuraava askel auttaa -
Vaihe 2) Otetaan tรคmรคn pรคivรคn pรคivรคmรครคrรค ja kellonaika tarkistaaksemme, toimiiko tuontiselvitys hyvin. Kun koodi suoritetaan, se tulostaa tรคmรคn pรคivรคn pรคivรคmรครคrรคn, mikรค tarkoittaa, ettรค tuontilauseemme toimii hyvin
Vaihe 3) Katsotaan kuinka voimme hakea pรคivรคmรครคrรคn vuoden pรครคstรค delta-objektien kautta. Kun suoritamme koodin, se antaa tulosteen odotetusti.
Vaihe 4) Toinen esimerkki siitรค, kuinka aikadeltaa voidaan kรคyttรครค laskemaan tuleva pรคivรคmรครคrรค nykyisestรค pรคivรคmรครคrรคstรค ja kellonajasta
Vaihe 5) Katsotaanpa monimutkaisempaa esimerkkiรค. Haluaisin mรครคrittรครค kuinka monta pรคivรครค on kulunut uudesta vuodesta. Nรคin jatketaan
- Kรคyttรคmรคllรค today= date.today() saamme tรคmรคn pรคivรคn pรคivรคmรครคrรคn
- Tiedรคmme, ettรค uusi vuosi on aina 1. tammikuuta, mutta vuosi voi olla erilainen. Kรคyttรคmรคllรค nyd= date(tรคnรครคn.vuosi,1,1) tallennamme uuden vuoden muuttujaan nyd
- if nyd < tรคnรครคn: vertaa, onko nykyinen pรคivรคmรครคrรค suurempi kuin uusi vuosi. Jos kyllรค, se siirtyy while-silmukkaan
- ((tรคnรครคn-nyd).pรคivรคt) antaa nykyisen pรคivรคmรครคrรคn ja uuden vuoden vรคlisen eron DAYS:ssรค
Tulos osoittaa, ettรค "Uudenvuodenpรคivรค meni jo 11 pรคivรครค sitten."
Tรคssรค on tรคydellinen toimintakoodi
#
# 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-esimerkki
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)
Yhteenveto
Pรคivรคmรครคrien ja aikojen manipulointiin sekรค yksinkertaisilla ettรค monimutkaisilla tavoilla datetime-moduuli toimittaa erilaisia โโluokkia tai luokkia, kuten
- pรคivรคmรครคrรค โ Kรคsittele vain pรคivรคmรครคrรครค (kuukausi, pรคivรค, vuosi)
- aika โ pรคivรคstรค riippumaton aika (tunti, minuutti, sekunti, mikrosekunti)
- datetime โ ajan ja pรคivรคmรครคrรคn yhdistelmรค (kuukausi, pรคivรค, vuosi, tunti, sekunti, mikrosekunti)
- timedelta โ Aika, jota kรคytetรครคn pรคivรคmรครคrien kรคsittelyyn
- tzinfo - Abstrakti luokka aikavyรถhykkeiden kรคsittelemiseen
Datetime-objektien kรคyttรถ
- Datetime-objektien tuonti ennen koodin suorittamista on pakollista
- Date.today-toiminnon kรคyttรคminen yksittรคisen pรคivรคmรครคrรคn/kuukauden/vuoden tulostamiseen sekรค pรคivรคn indeksointiin
- Date.time-objektin avulla saat ajan tunteina, minuutteina, sekunteina ja millisekunteina
Muotoilu Time-Out "str f time -toiminnolla"
- Kรคytรค "str f time function" muuttaaksesi vuoden muotoa
- Tulosta pรคivรค, pรคivรคmรครคrรค, kuukausi ja vuosi erikseen,
- Soittoaika missรค tahansa muodossa 12 tuntia tai 24 tuntia
Timedelta-objektit
- Timedelta-objekteilla voit arvioida sekรค tulevaisuuden ettรค menneisyyden aikaa
- Laske erityispรคivรคn (syntymรคpรคivรค) jรคljellรค olevien pรคivien kokonaismรครคrรค nykyisestรค ajasta
- Laske erityispรคivรคnรค (syntymรคpรคivรคnรค) kuluneiden pรคivien kokonaismรครคrรค nykyisestรค ajasta



















