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