Python - Tanggal & Waktu
Program Python dapat menangani tanggal dan waktu dengan beberapa cara. Mengubah format tanggal adalah tugas umum komputer. Modul waktu dan kalender Python membantu melacak tanggal dan waktu.
Apa itu Tick?
Interval waktu adalah angka floating-point dalam satuan detik. Instan tertentu dalam waktu dinyatakan dalam detik sejak pukul 00:00:00 1 Januari 1970 (periode).
Ada yang populer timemodul tersedia dengan Python yang menyediakan fungsi untuk bekerja dengan waktu, dan untuk mengubah antar representasi. Fungsi time.time () mengembalikan waktu sistem saat ini dalam kutu sejak 00:00:00 jam 1 Januari 1970 (epoch).
Contoh
#!/usr/bin/python
import time; # This is required to include time module.
ticks = time.time()
print "Number of ticks since 12:00am, January 1, 1970:", ticks
Ini akan menghasilkan sesuatu sebagai berikut -
Number of ticks since 12:00am, January 1, 1970: 7186862.73399
Aritmatika tanggal mudah dilakukan dengan kutu. Namun, tanggal sebelum zaman tidak dapat direpresentasikan dalam bentuk ini. Tanggal di masa depan juga tidak dapat direpresentasikan dengan cara ini - titik batasnya adalah sekitar tahun 2038 untuk UNIX dan Windows.
Apa itu TimeTuple?
Banyak fungsi waktu Python menangani waktu sebagai tupel 9 angka, seperti yang ditunjukkan di bawah ini -
Indeks | Bidang | Nilai |
---|---|---|
0 | Tahun 4 digit | 2008 |
1 | Bulan | 1 sampai 12 |
2 | Hari | 1 sampai 31 |
3 | Jam | 0 sampai 23 |
4 | Menit | 0 hingga 59 |
5 | Kedua | 0 hingga 61 (60 atau 61 adalah detik kabisat) |
6 | Hari dalam seminggu | 0 sampai 6 (0 adalah Senin) |
7 | Hari dalam setahun | 1 sampai 366 (hari Julian) |
8 | Tabungan siang hari | -1, 0, 1, -1 artinya library menentukan DST |
Tupel di atas sama dengan struct_timestruktur. Struktur ini memiliki atribut berikut -
Indeks | Atribut | Nilai |
---|---|---|
0 | tm_year | 2008 |
1 | tm_mon | 1 sampai 12 |
2 | tm_mday | 1 sampai 31 |
3 | tm_hour | 0 sampai 23 |
4 | tm_min | 0 hingga 59 |
5 | tm_sec | 0 hingga 61 (60 atau 61 adalah detik kabisat) |
6 | tm_wday | 0 sampai 6 (0 adalah Senin) |
7 | tm_yday | 1 sampai 366 (hari Julian) |
8 | tm_isdst | -1, 0, 1, -1 artinya library menentukan DST |
Mendapatkan waktu saat ini
Untuk menerjemahkan waktu instan dari detik sejak nilai floating-point epoch menjadi tupel waktu, teruskan nilai floating-point ke fungsi (misalnya, waktu lokal) yang mengembalikan tupel waktu dengan kesembilan item valid.
#!/usr/bin/python
import time;
localtime = time.localtime(time.time())
print "Local current time :", localtime
Ini akan menghasilkan hasil sebagai berikut, yang dapat diformat dalam bentuk lain yang dapat disajikan -
Local current time : time.struct_time(tm_year=2013, tm_mon=7,
tm_mday=17, tm_hour=21, tm_min=26, tm_sec=3, tm_wday=2, tm_yday=198, tm_isdst=0)
Mendapatkan waktu yang diformat
Anda dapat memformat kapan saja sesuai kebutuhan Anda, tetapi metode sederhana untuk mendapatkan waktu dalam format yang dapat dibaca adalah asctime () -
#!/usr/bin/python
import time;
localtime = time.asctime( time.localtime(time.time()) )
print "Local current time :", localtime
Ini akan menghasilkan hasil sebagai berikut -
Local current time : Tue Jan 13 10:17:09 2009
Mendapatkan kalender selama sebulan
Modul kalender memberikan berbagai metode untuk bermain dengan kalender tahunan dan bulanan. Di sini, kami mencetak kalender untuk bulan tertentu (Jan 2008) -
#!/usr/bin/python
import calendar
cal = calendar.month(2008, 1)
print "Here is the calendar:"
print cal
Ini akan menghasilkan hasil sebagai berikut -
Here is the calendar:
January 2008
Mo Tu We Th Fr Sa Su
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
The waktu Modul
Ada yang populer timemodul tersedia dengan Python yang menyediakan fungsi untuk bekerja dengan waktu dan untuk mengubah antar representasi. Berikut adalah daftar semua metode yang tersedia -
Sr.No. | Fungsi dengan Deskripsi |
---|---|
1 | time.altzone Offset zona waktu DST lokal, dalam detik di sebelah barat UTC, jika ditentukan. Ini negatif jika zona waktu DST lokal berada di timur UTC (seperti di Eropa Barat, termasuk Inggris). Gunakan ini hanya jika siang hari bukan nol. |
2 | time.asctime ([tupletime]) Menerima tupel waktu dan mengembalikan string 24 karakter yang dapat dibaca seperti 'Sel 11 Des 18:07:14 2008'. |
3 | time.clock () Mengembalikan waktu CPU saat ini sebagai angka titik-mengambang dari detik. Untuk mengukur biaya komputasi dari berbagai pendekatan, nilai time.clock lebih berguna daripada time.time (). |
4 | time.ctime ([detik]) Seperti asctime (localtime (detik)) dan tanpa argumen seperti asctime () |
5 | time.gmtime ([detik]) Menerima sekejap yang diekspresikan dalam detik sejak zaman dan mengembalikan tupel waktu dengan waktu UTC. Catatan: t.tm_isdst selalu 0 |
6 | time.localtime ([detik]) Menerima sekejap yang diekspresikan dalam hitungan detik sejak epoch dan mengembalikan tupel waktu dengan waktu lokal (t.tm_isdst adalah 0 atau 1, bergantung pada apakah DST berlaku untuk detik instan menurut aturan lokal). |
7 | time.mktime (tupletime) Menerima instan yang diekspresikan sebagai tupel waktu dalam waktu lokal dan mengembalikan nilai floating-point dengan instan yang diekspresikan dalam detik sejak epoch. |
8 | time.sleep (detik) Menangguhkan utas panggilan selama beberapa detik. |
9 | time.strftime (fmt [, tupletime]) Menerima instan yang diekspresikan sebagai time-tuple dalam waktu lokal dan mengembalikan string yang mewakili instan seperti yang ditentukan oleh string fmt. |
10 | waktu.strptime (str, fmt = '% a% b% d% H:% M:% S% Y') Parsing str sesuai dengan format string fmt dan kembalikan instan dalam format time-tuple. |
11 | time.time () Mengembalikan waktu instan saat ini, jumlah detik floating-point sejak periode. |
12 | time.tzset () Mereset aturan konversi waktu yang digunakan oleh rutinitas perpustakaan. Variabel lingkungan TZ menentukan bagaimana ini dilakukan. |
Mari kita bahas fungsinya secara singkat -
Ada dua atribut penting berikut yang tersedia dengan modul waktu -
Sr.No. | Atribut dengan Deskripsi |
---|---|
1 | time.timezone Atribut time.timezone adalah perbedaan detik dari zona waktu lokal (tanpa DST) dari UTC (> 0 di Amerika; <= 0 di sebagian besar Eropa, Asia, Afrika). |
2 | time.tzname Atribut time.tzname adalah sepasang string yang bergantung pada lokal, yang merupakan nama zona waktu lokal tanpa dan dengan DST. |
The kalender Modul
Modul kalender menyediakan fungsi terkait kalender, termasuk fungsi untuk mencetak kalender teks untuk bulan atau tahun tertentu.
Secara default, kalender menggunakan hari Senin sebagai hari pertama dalam seminggu dan Minggu sebagai hari terakhir. Untuk mengubahnya, panggil fungsi calendar.setfirstweekday ().
Berikut adalah daftar fungsi yang tersedia dengan modul kalender -
Sr.No. | Fungsi dengan Deskripsi |
---|---|
1 | calendar.calendar(year,w=2,l=1,c=6) Mengembalikan string multiline dengan kalender untuk tahun tahun diformat menjadi tiga kolom yang dipisahkan oleh spasi c. w adalah lebar karakter setiap tanggal; setiap baris memiliki panjang 21 * w + 18 + 2 * c. l adalah jumlah baris untuk setiap minggu. |
2 | calendar.firstweekday( ) Mengembalikan pengaturan saat ini untuk hari kerja yang dimulai setiap minggu. Secara default, saat kalender pertama kali diimpor, nilainya 0, artinya Senin. |
3 | calendar.isleap(year) Mengembalikan True jika tahun adalah tahun kabisat; jika tidak, Salah. |
4 | calendar.leapdays(y1,y2) Mengembalikan jumlah total hari kabisat dalam tahun-tahun dalam rentang (y1, y2). |
5 | calendar.month(year,month,w=2,l=1) Mengembalikan string multiline dengan kalender untuk bulan bulan tahun tahun, satu baris per minggu ditambah dua baris header. w adalah lebar karakter setiap tanggal; setiap baris memiliki panjang 7 * w + 6. l adalah jumlah baris untuk setiap minggu. |
6 | calendar.monthcalendar(year,month) Menampilkan daftar daftar int. Setiap sublist menunjukkan satu minggu. Hari di luar bulan bulan tahun tahun ditetapkan ke 0; hari dalam sebulan disetel ke hari dalam sebulan, 1 dan lebih tinggi. |
7 | calendar.monthrange(year,month) Mengembalikan dua bilangan bulat. Yang pertama adalah kode hari kerja untuk hari pertama bulan dalam tahun tahun; yang kedua adalah jumlah hari dalam sebulan. Kode hari kerja adalah 0 (Senin) hingga 6 (Minggu); nomor bulan adalah 1 sampai 12. |
8 | calendar.prcal(year,w=2,l=1,c=6) Seperti kalender cetak.calendar (tahun, w, l, c). |
9 | calendar.prmonth(year,month,w=2,l=1) Seperti kalender cetak. Bulan (tahun, bulan, w, l). |
10 | calendar.setfirstweekday(weekday) Tetapkan hari pertama setiap minggu ke hari kerja kode hari kerja. Kode hari kerja adalah 0 (Senin) hingga 6 (Minggu). |
11 | calendar.timegm(tupletime) Kebalikan dari time.gmtime: menerima waktu instan dalam bentuk time-tuple dan mengembalikan instan yang sama dengan jumlah floating-point detik sejak zaman. |
12 | calendar.weekday(year,month,day) Mengembalikan kode hari kerja untuk tanggal tertentu. Kode hari kerja adalah 0 (Senin) hingga 6 (Minggu); nomor bulan adalah 1 (Januari) hingga 12 (Desember). |
Modul & Fungsi Lainnya
Jika Anda tertarik, maka di sini Anda akan menemukan daftar modul dan fungsi penting lainnya untuk dimainkan dengan tanggal & waktu dengan Python -
The datetime Modul
The pytz Modul
The dateutil Modul