Python DateTime, TimeDelta, Strftime(Format) esimerkkien kanssa
⚡ Älykäs yhteenveto
Python datetime käsittelee päivämääriä, kellonaikoja ja välejä objekteina yhdessä date-, time- ja timedelta-luokkien kanssa. datetime-moduuli muotoilee tulosteen strftime()-funktiolla, jäsentää merkkijonoja ja laskee tulevat tai menneet hetket timedelta-aritmetiikan avulla.

In Python, päivämäärä, aika ja päivämäärä-aika luokat tarjoavat useita funktioita päivämäärien, kellonaikojen ja aikavälien käsittelyyn. Päivämäärä ja kellonaika Python ovat objekteja, joten niitä käsitellessäsi käsittelet itse asiassa objekteja etkä merkkijonoja tai aikaleimoja. Aina kun käsittelet päivämääriä tai kellonaikaa, sinun on tuotava datetime-moduuli.
Päivämäärätunnit sisään Python luokitellaan viiteen 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— Vatsalihaksettract-luokka aikavyöhykkeiden käsittelyyn
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 kellonaikoja kirjoittamatta 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 PythonEmme kirjoita koodia tälle päivämäärätoiminnolle, vaan tuomme sen omaan käyttöömme.
Tulosta päivämäärä käyttämällä date.today()
Funktiolla date.today() on useita ominaisuuksia, jotka liittyvät siihen. Voimme tulostaa yksittäisen päivän/kuukauden/vuoden ja monia muita asioita.
Katsotaanpa esimerkki
Tämän päivän arkipäivän numero
Funktio date.today() antaa sinulle myös viikonpäivän numeron. Tässä on viikonpäivätaulukko, joka alkaa numerolla 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ä.
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 odotetun mukainen.
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) Voit kutsua aikaluokkaa myös käyttämällä funktiota ”DATETIME OBJECT”. Oletetaan, että haluamme tulostaa vain nykyisen kellonajan 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, tässä on päivämäärä ja kellonaika. Ja seuraavalla rivillä on vain kellonaika.
Vaihe 3) Käytämme arkipäivän indeksoijaamme arkipäivän taulukkoluetteloomme selvittääksemme, mikä päivä on tänään.
- Arkipäiväoperaattorille (wd) annetaan numero väliltä (0-6) riippuen siitä, mikä viikonpäivä on. Tässä esitimme päivien (ma, ti, ke…su) listan taulukon.
- 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 datetimea ja datea. 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-funktio" muotoilua varten.
- Tämä toiminto käyttää erilaisia ohjauskoodi antamaan tulos.
- Jokainen ohjauskoodi muistuttaa eri parametreja, kuten vuotta, kuukautta, 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 määrittää päivämäärän, päivän, kuukauden ja vuoden erikseen. Voit myös muotoilla tekstin tyyliä pienillä muutoksilla strftime-funktion ohjauskoodissa.
Jos strftime-funktion sisällä korvaat (%a) isolla A:lla, eli (%A), tulostuu muodossa ”Perjantai” pelkän lyhenteen ”Pe” 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 objektin hakemiseen jonkin verran delta-päivämäärää ja -aikaa käyttäen. Timedelta-objekti tukee matemaattisia operaatioita, kuten yhteenlaskuja, osalaskujatrackertolasku, jakolasku 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 LASKEMISTAKatsotaanpa a. 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
- jos nyd < today: vertaa, onko nykyinen päivämäärä uudempi 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
Seuraavat esimerkit näyttävät samat päivämäärä- ja aikaoperaatiot, jotka on kirjoitettu Python 2, jossa print on lauseke eikä funktio. Käytä näitä versioita vain, kun ylläpidät perinteistä versiota. Python 2 koodia.
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)



















