Modul masa dalam Python 3. Kaedah utama, templat, contoh

Hampir mana-mana program menggunakan masa. Dalam Python, perpustakaan berasingan telah dibangunkan untuk ini - masadigunakan untuk melakukan pelbagai tindakan dengannya. Untuk menjadikannya berfungsi, ia mesti diisytiharkan terlebih dahulu pada permulaan kod. Baris ini digunakan untuk ini:

masa import

Mari kita pertimbangkan pilihan yang berbeza tentang cara menggunakan modul ini dengan betul dalam amalan. 

Menentukan bilangan saat sejak zaman itu

Untuk melaksanakan tugas ini, terdapat fungsi masa() yang tidak mengambil parameter. Nilai pulangannya ialah berapa saat telah berlalu sejak 1 Januari 1970. Dalam Python, masa ini dipanggil permulaan zaman. Sekurang-kurangnya dalam sistem pengendalian keluarga Unix.

Bagi Windows, tarikhnya adalah sama, tetapi mungkin terdapat masalah dengan nilai negatif sebelum tarikh ini. 

Zon waktu yang digunakan ialah UTC.

masa import

saat = masa.masa()

print(“Saat sejak zaman =”, saat)

Kerumitan fungsi ini ialah ia tidak memaparkan tarikh dengan tepat, tetapi hanya bilangan saat. Untuk menukar kepada format yang biasa kepada semua orang, anda perlu menggunakan maklumat yang tepat. Untuk ini, fungsi digunakan masa.ctime().

Mengembalikan tarikh, masa dalam format biasa

Untuk mengembalikan masa dalam format biasa, terdapat kaedah masa.ctime(). Tanda kurung menunjukkan pembolehubah atau nombor yang menunjukkan bilangan saat yang telah berlalu sejak permulaan zaman. Kaedah ini mengembalikan semua ciri tarikh dan masa, termasuk tarikh, tahun, bilangan jam, minit, saat dan hari dalam seminggu.

Fungsi ini juga boleh digunakan tanpa hujah. Dalam kes ini, ia mengembalikan tarikh, masa dan seterusnya.

Berikut ialah coretan kod yang menunjukkan perkara ini.

masa import

cetak(time.ctime())

Sel 23 Okt 10:18:23 2018

Baris terakhir ialah apa yang dicetak ke konsol tempat penterjemah Python sedang berjalan. Kaedah secara automatik memformat bilangan saat yang diterima ke dalam bentuk yang biasa digunakan oleh pengguna. Benar, semua elemen yang diterangkan di atas jarang digunakan. Sebagai peraturan, anda perlu mendapatkan sama ada hanya masa, atau hanya tarikh hari ini. Untuk ini, fungsi berasingan digunakan - strftime(). Tetapi sebelum kita mempertimbangkannya, kita perlu menghuraikan kelas masa.struktur_masa.

masa kelas.masa_struktur

Ini ialah kategori hujah yang boleh diterima oleh pelbagai kaedah. Ia tidak mempunyai sebarang pilihan. Ia adalah tuple dengan antara muka bernama. Ringkasnya, unsur-unsur kelas ini boleh diakses dengan nama dan nombor indeks.

Ia terdiri daripada sifat-sifat berikut.Modul masa dalam Python 3. Kaedah utama, templat, contoh

Perhatian! Tidak seperti beberapa bahasa pengaturcaraan lain, di sini bulan boleh berkisar antara 1 hingga 12, dan bukan dari sifar hingga 11.

Mengembalikan Format Tertentu

Menggunakan fungsi waktu senggang () anda boleh mendapatkan tahun, bulan, hari, jam, minit, saat secara individu dan mengembalikannya kepada rentetan teks. Kemudian ia boleh dicetak kepada pengguna menggunakan fungsi tersebut cetak () atau sebaliknya diproses.

Sebagai hujah, fungsi boleh mengambil sebarang pembolehubah yang mengambil nilai yang dikembalikan oleh fungsi lain modul ini. Sebagai contoh, anda boleh memindahkan masa tempatan kepadanya (ia akan dibincangkan kemudian), dari mana ia akan mengeluarkan data yang diperlukan.

Berikut ialah coretan kod tempat kami melakukannya.

masa import

bernama_tuple = time.localtime() # dapatkan struct_time

rentetan_masa = masa.strftime(«%m/%d/%Y, %H:%M:%S», bernama_tuple)

cetak(tali_masa)

Jika anda menjalankan kod ini, tarikh dan masa semasa akan dipaparkan. Format dan urutan elemen boleh diubah. Mereka adalah seperti berikut:

  1. %Y ialah tahun.
  2. %m ialah bulan.
  3. %d – hari.
  4. %H – masa.
  5. %M – minit.
  6. %S – kedua.

Sehubungan itu, anda boleh membuatnya supaya keluaran adalah eksklusif bulan dan hari. Untuk melakukan ini, anda tidak perlu memberikan arahan untuk memaparkan tahun. Iaitu, tulis dalam formula di atas sebagai hujah %m/%d, dan itu sahaja. Atau sebaliknya, %d/%m. 

Malah, bilangan literal rentetan adalah lebih besar. Berikut ialah jadual di mana mereka diterangkan secara terperinci.Modul masa dalam Python 3. Kaedah utama, templat, contoh

Tangguhkan utas untuk beberapa saat tertentu

Untuk ini, fungsi digunakan tidur (). Blok tugas pengaturcaraan yang agak besar dikaitkan dengan peredaran masa. Kadang-kadang anda perlu menangguhkan langkah seterusnya untuk masa tertentu. Contohnya, jika anda perlu berinteraksi dengan pangkalan data yang mengambil masa tertentu untuk diproses.

Sebagai hujah, kaedah menggunakan nilai yang menyatakan bilangan saat untuk menangguhkan langkah seterusnya daripada algoritma.

Contohnya, dalam coretan ini, kelewatan ialah 10 saat.

masa import

jeda = 10

print(«Program bermula…»)

masa.tidur(jeda)

print(str(jeda) + » saat berlalu.»)

Akibatnya, kita akan mendapat ini:

Program dimulakan…

10 saat berlalu.

Seperti yang dapat kita lihat dari output, program pertama kali melaporkan bahawa ia telah bermula. Dan selepas sepuluh saat, dia menulis bahawa masa ini telah berlalu.

Fungsi ini membolehkan anda menentukan tempoh jeda dalam milisaat. Untuk melakukan ini, kami menggunakan nilai pecahan argumen fungsi tidur. Sebagai contoh, 0,1. Ini bermakna bahawa kelewatan akan menjadi 100 milisaat.

Dapatkan waktu tempatan

Menggunakan fungsi localtime(), program mendapat bilangan saat sejak permulaan zaman dalam zon waktu tertentu. 

Mari berikan contoh kod untuk kejelasan.

masa import

hasil = time.localtime(1575721830)

print("hasil:", hasil)

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

print(«tm_hour:», result.tm_hour)

Kembalikan struct_time dalam UTC berdasarkan bilangan saat sejak zaman

Tugasan ini dicapai menggunakan time.gmtime(). kaedah. Lebih jelas jika kita beri contoh.

masa import

hasil = time.gmtime(1575721830)

print("hasil:", hasil)

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

print(«tm_hour:», result.tm_hour)

Jika anda menghidupkan urutan tindakan ini, maka satu set elemen yang berkaitan dengan masa, tahun dan zon waktu akan dipaparkan.

Kembalikan bilangan saat sejak permulaan zaman dengan penukaran automatik kepada waktu tempatan

Jika anda berhadapan dengan tugas sedemikian, ia dilaksanakan menggunakan kaedah mktime (), yang mengambil struct_time. Selepas itu, ia melakukan tindakan terbalik fungsi tersebut localtime(). Iaitu, ia menukar masa mengikut zon waktu tempatan kepada bilangan saat yang telah berlalu sejak permulaan zaman, diselaraskan untuk zon waktu.

Fungsi mktime() dan localtime() saling berkait rapat. Coretan kod ini jelas menunjukkan perkara ini. Mari kita lihat untuk memahami dengan lebih mendalam cara ia berfungsi. 

masa import

saat = 1575721830

# mengembalikan struct_time

t = time.localtime(saat)

cetak(«t1: «, t)

# mengembalikan saat dari struct_time

s = masa.mktime(t)

cetak(«ns:», saat)

Kami melihat bahawa pembolehubah saat telah diberikan 1575721830 saat sejak zaman itu. Pertama, program mendapat tarikh, masa dan parameter lain yang tepat, berdasarkan nilai ini, letakkannya dalam pembolehubah t, dan kemudian menukar kandungannya kepada pembolehubah s.

Selepas itu mengalahkan baris baharu dan memaparkan bilangan saat dalam konsol. Anda boleh menyemak bahawa ia akan menjadi nombor yang sama yang telah diberikan kepada pembolehubah saat.

Tarikh keluaran daripada 9 nombor yang merujuk kepada struct_time

Katakan kita mempunyai 9 nombor yang mewakili tahun, bulan, tarikh, hari dalam seminggu dan beberapa nilai lain, dan kita perlu menggabungkannya menjadi satu rentetan. Untuk ini, fungsi digunakan asctime(). Dia menerima atau bersedia struct_time, atau mana-mana tuple lain daripada 9 nilai yang bermaksud sama. Selepas itu, rentetan dikembalikan, iaitu tarikh, masa dan beberapa parameter lain. 

Sangat mudah untuk menggunakan kaedah ini untuk membawa data yang ditentukan pengguna yang berbeza ke dalam satu pembolehubah..

Sebagai contoh, ia mungkin program yang pengguna menentukan secara berasingan hari, bulan, tahun, hari dalam seminggu dan data lain berkenaan pendaftaran untuk acara. Selepas itu, maklumat yang diterima dimasukkan ke dalam pangkalan data dan kemudian dikeluarkan kepada orang lain yang memintanya.

Mendapatkan masa dan tarikh berdasarkan rentetan Python

Katakan pengguna telah menentukan data yang berbeza, dan kita perlu menggabungkannya ke dalam satu baris dalam format yang dimasukkan oleh orang itu, dan kemudian membuat salinan kepada pembolehubah lain, dan membinanya semula ke dalam format standard di sana. Untuk ini, fungsi digunakan time.strptime().

Ia memerlukan pembolehubah di mana nilai ini ditentukan dan mengembalikan yang sudah biasa kepada kita struct_time.

Untuk kejelasan, kami akan menulis program sedemikian.

masa import

rentetan_masa = «15 Jun, 2019»

hasil = masa.strptime(rentetan_masa, «%d %B, %Y»)

cetak(hasil)

Cuba teka apakah outputnya? Cuba teka tanpa melihat garis bawah. Dan kemudian semak jawapannya.

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)

Pendek kata, bekerja dengan tarikh dan masa dalam Python tidak sukar sama sekali. Ia cukup untuk mengikuti arahan ini, dan semuanya akan berjaya. Menggunakan Perpustakaan masa pengguna mendapat sejumlah besar peluang untuk bekerja dengan masa, seperti:

  1. Tangguhkan pelaksanaan program untuk jangka masa tertentu.
  2. Tunjukkan masa yang telah berlalu sejak zaman itu, dalam beberapa saat. Maklumat ini boleh digunakan untuk menjumlahkan masa atau melakukan operasi matematik lain padanya.
  3. Tukar kepada format yang mudah. Selain itu, pengaturcara sendiri boleh menetapkan elemen mana yang akan dipaparkan dan dalam urutan apa. 

Terdapat juga beberapa kemungkinan lain, tetapi hari ini kami telah menganalisis yang paling asas. Mereka akan berguna dalam hampir mana-mana program yang entah bagaimana berfungsi dengan masa. Semoga berjaya.

Sila tinggalkan balasan anda