Sisu
- Epohhist möödunud sekundite arvu määramine
- Kuupäeva, kellaaja tagastamine tavalises vormingus
- klassi aeg.struktuuri_aeg
- Konkreetse vormingu tagastamine
- Lükake lõime teatud arvu sekundite võrra edasi
- Hangi kohalik aeg
- Tagastab struct_time UTC-s, võttes aluseks sekundite arvu alates ajastust
- Tagastab epohhi algusest möödunud sekundite arvu automaatse teisendamisega kohalikule ajale
- Väljundkuupäev alates 9 numbrist, mis viitavad struct_time
- Kellaaja ja kuupäeva hankimine Pythoni stringi põhjal
Peaaegu iga programm kasutab aega. Pythonis on selle jaoks välja töötatud eraldi raamatukogu – aegkasutatakse sellega mitmesuguste toimingute tegemiseks. Selle toimimiseks tuleb see kõigepealt koodi alguses deklareerida. Seda rida kasutatakse selleks:
impordiaeg
Vaatleme erinevaid võimalusi, kuidas seda moodulit praktikas õigesti kasutada.
Epohhist möödunud sekundite arvu määramine
Selle ülesande täitmiseks on funktsioon aeg(), mis ei võta parameetreid. Selle tagastusväärtus on, mitu sekundit on möödunud 1. jaanuarist 1970. Pythonis nimetatakse seda aega epohhi alguseks. Vähemalt Unixi perekonna operatsioonisüsteemides.
Windowsi puhul on kuupäev sama, kuid probleeme võib esineda negatiivsete väärtustega, mis olid enne seda kuupäeva.
Kasutatud ajavöönd on UTC.
impordiaeg
sekundid = aeg.aeg()
print ("Sekundeid ajastust =", sekundit)
Selle funktsiooni keerukus seisneb selles, et see ei näita täpselt kuupäeva, vaid ainult sekundite arvu. Kõigile tuttavasse vormingusse teisendamiseks peate kasutama täpset teavet. Selleks kasutatakse funktsiooni aeg.ctime().
Kuupäeva, kellaaja tagastamine tavalises vormingus
Aja tagastamiseks tavalises vormingus on meetod aeg.ctime(). Sulgudes on märgitud muutuja või arv, mis näitab epohhi algusest möödunud sekundite arvu. See meetod tagastab kõik kuupäeva ja kellaaja omadused, sealhulgas kuupäeva, aasta, tundide arvu, minutid, sekundid ja nädalapäeva.
Seda funktsiooni saab kasutada ka argumentideta. Sel juhul tagastab see praeguse kuupäeva, kellaaja jne.
Siin on koodilõik, mis seda demonstreerib.
impordiaeg
print(time.ctime())
T 23. oktoober 10:18:23 2018
Viimane rida on see, mis prinditakse konsooli, kus töötab Pythoni tõlk. Meetod vormindab saadud sekundite arvu automaatselt kasutajale tuttavaks vormiks. Tõsi, kõiki ülalkirjeldatud elemente kasutatakse harva. Reeglina peate saama ainult kellaaja või ainult tänase kuupäeva. Selleks kasutatakse eraldi funktsiooni – strftime(). Kuid enne selle kaalumist peame klassi analüüsima time.struct_time.
klassi aeg.struktuuri_aeg
See on argumentide kategooria, mida saab aktsepteerida erinevate meetoditega. Sellel pole valikuid. See on nimelise liidesega korteež. Lihtsamalt öeldes on selle klassi elementidele juurdepääs nii nime kui ka indeksi numbri järgi.
See koosneb järgmistest atribuutidest.
Tähelepanu! Erinevalt paljudest teistest programmeerimiskeeltest võib siin kuu varieeruda vahemikus 1 kuni 12, mitte nullist 11ni.
Konkreetse vormingu tagastamine
Funktsiooni kasutamine strftime() aasta, kuu, päeva, tunni, minuti, sekundi saate eraldi hankida ja need tekstistringiks tagastada. Seejärel saab selle funktsiooni abil kasutajale printida printida () või muul viisil töödeldud.
Argumendina võib funktsioon võtta mis tahes muutuja, mis võtab selle mooduli teiste funktsioonide tagastatud väärtuse. Näiteks saab sinna kanda kohaliku aja (sellest tuleb juttu hiljem), kust ta vajalikud andmed välja tõmbab.
Siin on koodilõik, kus me seda teeme.
impordiaeg
named_tuple = aeg.localtime() # hangi struct_time
time_string = aeg.strftime(«%m/%d/%Y, %H:%M:%S», nimega_korter)
print(time_string)
Kui käivitate selle koodi, kuvatakse praegune kuupäev ja kellaaeg. Elementide vormingut ja järjestust saab muuta. Need on järgmised:
- %Y on aasta.
- %m on kuu.
- %d – päev.
- %H – aeg.
- %M – minutit.
- %S – teine.
Sellest lähtuvalt saate teha nii, et väljund oleks ainult kuu ja päev. Selleks pole lihtsalt vaja aastaarvu kuvamiseks käsku anda. See tähendab, et kirjuta ülaltoodud valemisse argumendina %m/%d ja ongi kõik. Või vastupidi, %d/%m.
Tegelikult on stringiliteraalide arv palju suurem. Siin on tabel, kus neid on üksikasjalikult kirjeldatud.
Lükake lõime teatud arvu sekundite võrra edasi
Selleks kasutatakse funktsiooni magama (). Üsna suur programmeerimisülesannete plokk on seotud aja möödumisega. Mõnikord peate järgmise sammu teatud aja võrra edasi lükkama. Näiteks kui teil on vaja suhelda andmebaasiga, mille töötlemiseks kulub teatud aeg.
Argumendina kasutab meetod väärtust, mis väljendab sekundite arvu algoritmi järgmise sammu edasilükkamiseks.
Näiteks selles katkendis on viivitus 10 sekundit.
impordiaeg
paus = 10
print ("Programm algas...")
aeg.uni (paus)
print(str(paus) + » sekundit möödas.»)
Selle tulemusena saame selle:
Programm algas…
Möödus 10 sekundit.
Nagu väljundist näeme, teatab programm esmalt, et see on käivitunud. Ja kümne sekundi pärast kirjutas ta, et see aeg on möödas.
Funktsioon võimaldab määrata pausi kestuse millisekundites. Selleks kasutame funktsiooni argumendi murdosa väärtusi magada. Näiteks 0,1. See tähendab, et viivitus on 100 millisekundit.
Hangi kohalik aeg
Funktsiooni localtime() abil saab programm sekundite arvu ajastu algusest teatud ajavööndis.
Toome selguse huvides näidiskoodi.
impordiaeg
tulemus = aeg.localtime(1575721830)
print("tulemus:", tulemus)
print(«nгод:», result.tm_year)
print(«tm_tund:», tulemus.tm_tund)
Tagastab struct_time UTC-s, võttes aluseks sekundite arvu alates ajastust
See ülesanne saavutatakse time.gmtime() abil. meetod. See on selgem, kui toome näite.
impordiaeg
tulemus = time.gmtime(1575721830)
print("tulemus:", tulemus)
print(«nгод:», result.tm_year)
print(«tm_tund:», tulemus.tm_tund)
Kui lülitate selle toimingute jada sisse, kuvatakse aja, aasta ja ajavööndiga seotud elementide komplekt.
Tagastab epohhi algusest möödunud sekundite arvu automaatse teisendamisega kohalikule ajale
Kui seisate silmitsi sellise ülesandega, rakendatakse seda meetodi abil mktime(), mis võtab struct_time. Pärast seda täidab see funktsiooni pöördtoimingu kohalik aeg(). See tähendab, et see teisendab kohaliku ajavööndi järgi aja sekundite arvuks, mis on möödunud ajastu algusest, kohandades seda ajavööndi järgi.
Funktsioonid mktime() ja localtime() on omavahel tihedalt läbi põimunud. See koodilõik näitab seda selgelt. Vaatame seda, et sügavamalt mõista, kuidas see toimib.
impordiaeg
sekundit = 1575721830
# tagastab struct_time
t = aeg.kohalik aeg (sekundites)
print(«t1: «, t)
# tagastab sekundid väärtusest struct_time
s = aeg.mktime(t)
print(«ns:», sekundid)
Näeme, et muutuja sekundit ajastule on määratud 1575721830 sekundit. Esiteks saab programm täpse kuupäeva, kellaaja ja muud parameetrid, selle väärtuse põhjal pane see muutujasse tja teisendab seejärel selle sisu muutujaks s.
Pärast seda lööb välja uue rea ja kuvab konsoolis sekundite arvu. Saate kontrollida, kas see on sama number, mis määrati sekundimuutujale.
Väljundkuupäev alates 9 numbrist, mis viitavad struct_time
Oletame, et meil on 9 numbrit, mis tähistavad aastat, kuud, kuupäeva, nädalapäeva ja mitmeid muid väärtusi, ning me peame need üheks stringiks ühendama. Selleks kasutatakse funktsiooni asctime(). Ta nõustub või on valmis struct_time, või mis tahes muu 9 väärtusega korrutis, mis tähistab sama. Pärast seda tagastatakse string, mis on kuupäev, kellaaeg ja mitmed muud parameetrid.
Seda meetodit on väga mugav kasutada selleks, et tuua erinevad kasutaja määratud andmed ühte muutujasse..
Näiteks võib see olla programm, kus kasutaja määrab eraldi päeva, kuu, aasta, nädalapäeva ja muud sündmusele registreerumise andmed. Pärast seda sisestatakse saadud teave andmebaasi ja väljastatakse seejärel teisele isikule, kes seda nõuab.
Kellaaja ja kuupäeva hankimine Pythoni stringi põhjal
Oletame, et kasutaja on määranud erinevad andmed ja me peame ühendama need ühele reale inimese sisestatud vormingus ning seejärel tegema koopia teise muutujasse ja ehitama need seal uuesti standardvormingusse. Selleks kasutatakse funktsiooni time.strptime().
See võtab muutuja, milles see väärtus on määratud, ja tagastab meile juba tuttava struct_time.
Selguse huvides kirjutame sellise programmi.
impordiaeg
time_string = «15. juuni 2019»
tulemus = time.strptime(time_string, «%d %B, %Y»)
print (tulemus)
Arva ära, mis väljund saab olema? Proovige arvata, ilma et oleksite alumist rida vaatama. Ja siis kontrolli vastust.
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=15, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=166, tm_isdst=-1)
Ühesõnaga, Pythonis pole kuupäevade ja kellaaegadega töötamine üldse keeruline. Piisab nende juhiste järgimisest ja kõik saab korda. Raamatukogu kasutamine aeg kasutaja saab ajaga töötamiseks tohutul hulgal võimalusi, näiteks:
- Peatage programmi täitmine teatud ajaks.
- Näidake ajastust möödunud aega sekundites. Seda teavet saab kasutada aja kokkuvõtmiseks või sellega muude matemaatiliste toimingute tegemiseks.
- Teisendage mugavasse vormingusse. Lisaks saab programmeerija ise määrata, milliseid elemente ja millises järjestuses kuvatakse.
Samuti on mitmeid muid võimalusi, kuid täna oleme analüüsinud kõige elementaarsemaid. Need tulevad kasuks peaaegu kõigis programmides, mis kuidagi aja jooksul töötavad. Edu.