modul waktos di Python 3. métode utama, template, conto

Ampir sagala program ngagunakeun waktu. Dina Python, perpustakaan anu misah parantos dikembangkeun pikeun ieu - waktudipaké pikeun ngalakukeun rupa-rupa lampah kalawan eta. Jang ngalampahkeun ieu, mimitina kudu dinyatakeun dina awal kode. Garis ieu dianggo pikeun ieu:

waktos impor

Hayu urang pertimbangkeun pilihan anu béda ngeunaan cara ngagunakeun modul ieu kalayan leres dina prakna. 

Nangtukeun jumlah detik ti epoch

Pikeun ngalengkepan tugas ieu, aya fungsi waktu() nu nyokot euweuh parameter. Nilai balik na sabaraha detik geus kaliwat saprak 1 Januari 1970. Dina Python, waktos ieu disebut mimiti hiji epoch. Sahenteuna dina sistem operasi kulawarga Unix.

Sedengkeun pikeun Windows, tanggalna sami, tapi meureun aya masalah sareng nilai négatip sateuacan tanggal ieu. 

Zona waktu anu digunakeun nyaéta UTC.

waktos impor

detik = time.time()

print ("Detik saprak jaman =", detik)

Pajeulitna fungsi ieu téh nya éta teu nembongkeun persis tanggal, tapi ngan jumlah detik. Pikeun ngarobih kana format anu biasa pikeun sadayana, anjeun kedah nganggo inpormasi anu akurat. Pikeun ieu, fungsina dianggo waktos.ctime().

Balikkeun tanggal, waktos dina format biasa

Pikeun mulangkeun waktos dina format biasa, aya metode waktos.ctime(). Tanda kurung nuduhkeun variabel atawa angka nu nuduhkeun jumlah detik nu geus kaliwat ti mimiti jaman. Metoda ieu mulangkeun sadaya ciri tanggal sareng waktos, kalebet tanggal, taun, jumlah jam, menit, detik, sareng dinten dina saminggu.

Pungsi ieu ogé bisa dipaké tanpa argumen. Dina hal ieu, éta mulih tanggal ayeuna, waktu, jeung saterusna.

Ieu snippet kode anu nunjukkeun ieu.

waktos impor

nyitak(time.ctime())

Salasa 23 Oktober 10:18:23 2018

Baris panungtungan nyaéta naon anu dicitak kana konsol dimana juru Python ngajalankeun. Metodeu sacara otomatis ngaformat jumlah detik anu ditampi kana bentuk anu biasa ku pangguna. Leres, sadaya unsur anu dijelaskeun di luhur jarang dianggo. Sakumaha aturan, Anjeun kudu meunang boh ngan waktu, atawa ngan tanggal kiwari. Pikeun ieu, fungsi anu misah dianggo - strftime(). Tapi saméméh urang nganggap hal éta, urang kudu parse kelas waktos.struct_time.

waktos kelas.struct_time

Ieu mangrupikeun kategori argumen anu tiasa ditampi ku sababaraha metode. Éta henteu ngagaduhan pilihan. Ieu mangrupakeun tuple kalawan panganteur ngaranna. Kantun nempatkeun, unsur-unsur kelas ieu tiasa diaksés ku nami sareng nomer indéks.

Ieu diwangun ku atribut di handap ieu.modul waktos di Python 3. métode utama, template, conto

Perhatosan! Beda sareng sababaraha basa pamrograman anu sanés, di dieu bulanna tiasa dibasajankeun 1 dugi ka 12, sareng henteu ti enol dugi ka 11.

Ngabalikeun Format Spésifik

Ngagunakeun fungsi strftime() anjeun tiasa kéngingkeun taun, bulan, dinten, jam, menit, detik masing-masing sareng uih deui kana senar téks. Teras tiasa dicitak ka pangguna nganggo fungsina nyitak () atawa lamun heunteu diolah.

Salaku argumen, hiji fungsi bisa nyandak sagala variabel nu nyokot nilai balik ku fungsi sejen tina modul ieu. Salaku conto, anjeun tiasa nransferkeun waktos lokal ka dinya (bakal dibahas engké), ti mana éta bakal narik data anu diperyogikeun.

Ieu snippet kode dimana urang ngalakukeunana.

waktos impor

ngaranna_tuple = time.localtime () # meunang struct_time

time_string = time.strftime(«%m/%d/%Y, %H:%M:%S», ngaranna_tuple)

print (tali_waktu)

Upami anjeun ngajalankeun kode ieu, tanggal sareng waktos ayeuna bakal ditingalikeun. Format jeung runtuyan unsur bisa dirobah. Aranjeunna kieu:

  1. %Y nyaéta taun.
  2. %m nyaéta bulan.
  3. %d – poé.
  4. %H - waktos.
  5. %M – menit.
  6. %S - kadua.

Sasuai, anjeun tiasa ngajantenkeun kaluaranna sacara éksklusif dina bulan sareng dinten. Jang ngalampahkeun ieu, anjeun ngan saukur teu kedah masihan paréntah pikeun mintonkeun taun. Nyaéta, nyerat dina rumus di luhur salaku argumen% m /% d, sareng éta. Atawa sabalikna, %d/%m. 

Kanyataanna, jumlah string literals loba nu leuwih gede. Ieu tabel dimana aranjeunna dijelaskeun sacara rinci.modul waktos di Python 3. métode utama, template, conto

Nunda thread pikeun sababaraha detik

Pikeun ieu, fungsina dianggo sare (). Blok anu cukup ageung tina tugas pemrograman pakait sareng waktos. Kadang-kadang anjeun kedah nunda léngkah salajengna pikeun waktos anu tangtu. Salaku conto, upami anjeun kedah berinteraksi sareng database anu peryogi sababaraha waktos pikeun diolah.

Salaku argumen, métode ngagunakeun nilai nu expresses jumlah detik pikeun reureuh lengkah saterusna tina algoritma nu.

Contona, dina snippet ieu, reureuh nyaéta 10 detik.

waktos impor

jeda = 10

print ("Program dimimitian ...")

waktos.sare (jeda)

print(str(reureuh) + »detik kaliwat.»)

Hasilna, urang bakal meunang ieu:

Program dimimitian…

10 detik kaliwat.

Sakumaha anu urang tingali tina kaluaran, program mimiti ngalaporkeun yén éta parantos ngamimitian. Sarta sanggeus sapuluh detik, manéhna nulis yén waktu ieu geus kaliwat.

Fungsina ngamungkinkeun anjeun pikeun nangtukeun durasi jeda dina milidetik. Jang ngalampahkeun ieu, urang ngagunakeun nilai fractional sahiji argumen fungsi bobo. Contona, 0,1. Ieu ngandung harti yén reureuh bakal 100 milliseconds.

Kéngingkeun waktos lokal

Ngagunakeun fungsi localtime (), program meunang jumlah detik saprak mimiti epoch dina zona waktu husus. 

Hayu urang masihan conto kode pikeun kajelasan.

waktos impor

hasilna = time.localtime(1575721830)

print("hasil:", hasil)

print(«nгод:», result.tm_year)

print(«tm_hour:», result.tm_hour)

Balikkeun struct_time dina UTC dumasar kana jumlah detik saprak jaman

tugas ieu kahontal ngagunakeun time.gmtime (). métode. Bakal langkung écés upami urang masihan conto.

waktos impor

hasilna = time.gmtime(1575721830)

print("hasil:", hasil)

print(«nгод:», result.tm_year)

print(«tm_hour:», result.tm_hour)

Upami anjeun ngaktipkeun runtuyan tindakan ieu, sakumpulan elemen anu aya hubunganana sareng waktos, taun sareng zona waktos bakal ditingalikeun.

Balikkeun jumlah detik ti mimiti epoch kalayan konversi otomatis kana waktos lokal

Upami anjeun nyanghareupan tugas sapertos kitu, éta dilaksanakeun nganggo metodeu mktime (), anu nyandak struct_time. Saatos éta, éta ngalaksanakeun tindakan sabalikna tina fungsi éta waktos lokal (). Hartina, éta ngarobah waktu numutkeun zona waktu lokal kana jumlah detik nu geus kaliwat ti mimiti epoch, disaluyukeun pikeun zona waktu.

fungsi mktime () jeung localtime () raket intertwined. snippet kode ieu jelas nunjukkeun ieu. Hayu urang tingali éta pikeun ngartos langkung jero kumaha jalanna. 

waktos impor

detik = 1575721830

# mulih struct_time

t = waktos.localtime (detik)

nyitak («t1: «, t)

# mulih detik ti struct_time

s = waktos.mktime(t)

print(«ns:», detik)

Urang tingali yén variabel detik geus ditugaskeun 1575721830 detik ti jaman. Kahiji, program meunang tanggal pasti, waktu jeung parameter séjén, dumasar kana nilai ieu, nempatkeun eta dina variabel t, terus ngarobah eusina jadi variabel s.

Sanggeus éta ngéléhkeun kaluar garis anyar jeung mintonkeun jumlah detik dina konsol nu. Anjeun tiasa pariksa yén éta bakal nomer anu sami anu ditugaskeun kana variabel detik.

Tanggal kaluaran ti 9 angka nu nujul kana struct_time

Anggap urang boga 9 angka ngalambangkeun taun, bulan, tanggal, poé dina minggu jeung sajumlah nilai sejenna, sarta kami kudu ngagabungkeun kana hiji string. Pikeun ieu, fungsina dianggo asctime (). Manehna narima atawa siap struct_time, atawa tuple séjén tina 9 nilai nu nangtung pikeun sarua. Saatos éta, senar dipulangkeun, nyaéta tanggal, waktos, sareng sajumlah parameter sanés. 

Hal ieu kacida merenah ngagunakeun metoda ieu dina urutan mawa disparate data husus pamaké kana variabel tunggal..

Salaku conto, éta tiasa janten program dimana pangguna netepkeun sacara misah dinten, bulan, taun, dinten dina saminggu, sareng data sanésna ngeunaan pendaptaran pikeun hiji acara. Saatos éta, inpormasi anu ditampi diasupkeun kana pangkalan data teras dikaluarkeun ka jalma sanés anu naroskeunana.

Kéngingkeun waktos sareng kaping dumasar kana string Python

Anggap pamaké geus ditangtukeun data disparate, sarta kami kudu ngagabungkeun kana hiji garis dina format nu baé diasupkeun, lajeng nyieun salinan ka variabel sejen, sarta ngawangun deui kana format baku aya. Pikeun ieu, fungsina dianggo waktos.strptime().

Butuh variabel nu nilai ieu dieusian, sarta mulih geus akrab ka urang struct_time.

Pikeun kajelasan, urang bakal nyerat program sapertos kitu.

waktos impor

string_waktu = «15 Juni 2019»

hasil = time.strptime(time_string, «%d %B, %Y»)

nyitak (hasil)

Tebak naon kaluaran bakal? Coba nebak tanpa ningali garis handap. Lajeng pariksa jawaban.

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)

Dina kecap, damel sareng kaping sareng waktos dina Python henteu sesah pisan. Ieu cukup pikeun nuturkeun parentah ieu, sarta sagalana bakal jalan kaluar. Ngagunakeun Perpustakaan waktu pamaké meunang sajumlah badag kasempetan pikeun gawé bareng waktu, kayaning:

  1. Nunda palaksanaan program pikeun jumlah waktu nu tangtu.
  2. Témbongkeun waktu nu geus kaliwat ti epoch, dina detik. Inpormasi ieu tiasa dianggo pikeun nyimpulkeun waktos atanapi ngalaksanakeun operasi matematik anu sanés.
  3. Ngarobah kana format merenah. Leuwih ti éta, programer sorangan bisa nangtukeun mana elemen bakal dipintonkeun sarta dina urutan naon. 

Aya ogé sababaraha kemungkinan anu sanés, tapi ayeuna urang parantos nganalisis anu paling dasar. Aranjeunna bakal mangpaat dina ampir sagala program anu kumaha bae jalan kalawan waktu. Sing salamet.

Leave a Reply