Overview
Modul datetime di Python menyediakan kelas untuk manipulasi tanggal dan waktu dengan cara yang sederhana namun efektif. Dengan datetime, kamu dapat dengan mudah membuat, mengubah, dan melakukan perhitungan dengan tanggal dan waktu dalam script Python mereka, termasuk penanganan zona waktu.
Python datetime adalah modul dalam pemrograman Python untuk bekerja dengan tanggal dan waktu secara efisien.
Salah satu kegunaan utama dari modul datetime adalah kemampuannya membangun objek datetime yang dapat menyimpan informasi tanggal dan waktu secara bersamaan. Objek ini membantu saat kamu perlu melakukan perbandingan antar tanggal, atau ketika kamu ingin menyaring data dalam rentang waktu tertentu.
Misalnya, kamu ingin mengetahui tren penjualan dalam satu bulan terakhir atau mengukur efektivitas sebuah campaign marketing.
Artikel ini akan membawa kamu menjelajahi kemampuan modul datetime, mulai dari pembuatan objek tanggal dan waktu, manipulasi interval waktu, sampai penyesuaian zona waktu yang kompleks. Yuk, simak!
Jenis-jenis Class dalam Python datetime
Modul datetime di Python menyediakan berbagai class yang dirancang untuk memenuhi kebutuhan manipulasi tanggal dan waktu. Berikut lima class utama dalam modul ini:
Class date
Class ini digunakan untuk merepresentasikan tanggal dalam kalender. Kamu dapat membuat objek date dengan menentukan tahun, bulan, dan hari. Fungsi-fungsi dalam class date berguna untuk melakukan operasi seperti mendapatkan hari dalam seminggu, atau menghitung selisih hari antara dua tanggal.
Contoh penggunaannya adalah menentukan tanggal jatuh tempo atau tanggal peluncuran produk.
Class time
Berbeda dengan date, class time berfokus pada waktu dalam sehari, tanpa informasi tanggal. Class ini menyimpan jam, menit, detik, dan mikrodetik. Ini berguna ketika kamu perlu mengatur jadwal atau mengukur waktu yang dibutuhkan untuk menyelesaikan suatu tugas, tanpa perlu terkait dengan tanggal tertentu.
Class datetime
Menggabungkan fungsi dari date dan time, class datetime membantu dalam manipulasi tanggal dan waktu secara bersamaan. Ini adalah class yang paling sering digunakan dalam analisis data, karena biasanya data yang kamu kerjakan mengandung timestamp yang perlu diolah.
Class timedelta
Class timedelta sangat penting dalam perhitungan perbedaan waktu. Class ini dipakai untuk merepresentasikan durasi, perbedaan antara dua tanggal atau waktu. Misalnya, timedelta bisa digunakan untuk menambah atau mengurangi hari, minggu, atau bulan dari sebuah objek datetime, memungkinkan analisis tren jangka panjang atau perencanaan ke depan.
Cara dan Contoh Menggunakan Tiap-tiap Class
Selanjutnya, mari kita pelajari cara menggunakan masing-masing class dalam modul datetime Python. Misalnya kita memiliki dataset yang merepresentasikan log aktivitas harian:
![](https://cdn.prod.website-files.com/61af164800e38cf1b6c60b55/66c061341ef0c15101bd09fa_668dc9637a3d2ce46a0b4f9c_AD_4nXc_9jhKuVbqPQkQ05CJfL3WjRfXLOpgOaQhqym_FObzq23rQDLhCyijinHEsuNYqKjqvjo4-ox7y6qgJegnpqQtMJGprb8U5g3QFPjd1CyV9je56RqBu3fzjsrvPhjDXTJZAvZIoxe31qFSwaMUZeuCr2JZ.png)
Cara menggunakan class date
Untuk menggunakan class date, kita perlu mengimpor class tersebut dari modul datetime, kemudian membuat objek date dengan menentukan tahun, bulan, dan hari.
![](https://cdn.prod.website-files.com/61af164800e38cf1b6c60b55/66c061351ef0c15101bd0a0d_668dc9637018f879e3adcd93_AD_4nXemkeXOoLtJY1-Y_VnP-m_B70YaGxEjYpr0xHqD24VL-dipbQu5hzR8y271N4ZE1ahQAyXRyfF3ObqqYjf6BqCqE0NuymsjJZQikBHU3a0ls5LTRUlYTA_TXz00PRpzghL4EVNALfLscYj5p2VGMqlO_Y8.png)
Contohnya, kita ingin mengetahui hari dalam seminggu untuk setiap tanggal log.
Cara menggunakan class time
Class time dipakai untuk menyimpan waktu tanpa informasi tanggal. Objek time dibuat dengan menyertakan jam, menit, detik.
Sebagai contoh, kita ingin menyimpan waktu "Jam Masuk" dari dataset.
Cara menggunakan class datetime
Misalnya, gabungkan tanggal dan "Jam Masuk" untuk membuat timestamp lengkap.
Cara menggunakan class timedelta
Timedelta berfungsi untuk menambah atau mengurangi waktu dari tanggal atau waktu tertentu.
Contohnya, kita menghitung durasi kerja setiap hari berdasarkan "Jam Masuk" dan "Jam Keluar".
FAQ (Frequently Ask Question)
Bagaimana cara mengatasi masalah zona waktu dengan datetime di Python?
Mengatasi masalah zona waktu dengan modul datetime di Python sedikit rumit, karena objek datetime bawaan tidak menyertakan informasi zona waktu, kecuali jika secara eksplisit ditentukan.
Untuk bekerja dengan zona waktu dengan efektif, kamu bisa menggunakan library tambahan seperti pytz atau menggunakan fitur timezone yang tersedia di Python 3.2 dan lebih baru. Berikut beberapa langkah untuk mengatasi masalah zona waktu:
#1 Menggunakan pytz
- Jika belum terinstal, instal pytz melalui pip install pytz
- Impor pytz dan gunakan untuk menetapkan zona waktu ke objek datetime.
- Kamu juga dapat mengonversi waktu dari satu zona ke zona lain.
#2 Menggunakan timezone dari Python Standard Library
Dalam Python 3.2 dan lebih baru, kamu bisa menggunakan datetime.timezone untuk menangani zona waktu tanpa perlu pustaka tambahan.
- Buat objek timezone dengan perbedaan UTC.
- Kamu juga bisa mengonversi waktu antar zona waktu berbeda dengan cara yang sama.
Apa perbedaan antara datetime.date(), datetime.time(), dan datetime.datetime()?
Perbedaan antara datetime.date(), datetime.time(), dan datetime.datetime() dari modul datetime Python adalah sebagai berikut:
![](https://cdn.prod.website-files.com/61af164800e38cf1b6c60b55/66c061351ef0c15101bd0a10_668dc963bccceede6e9f23df_AD_4nXc6CjK12LsKV7mbIO1_2eOdQRDt5Wu1sEJeu_JRFgAw38vDKrkyuM6tQwQs99CYG7atT-5_KIxj8BIkS_JVq_tHnyt7OJmhAi0gO9DMlnZWjJ_r0IheaTZ_3mLC_eqlf0zlf-OZj05r2UiUKq7-hZBWSJ5Q.png)
Bagaimana cara mengubah string menjadi objek datetime di Python?
Untuk mengubah string menjadi objek datetime di Python, kamu dapat menggunakan metode strptime() yang tersedia dalam class datetime. Metode ini memudahkan untuk menentukan string tanggal-waktu dan formatnya, sehingga Python dapat menginterpretasikan string tersebut sebagai objek datetime.
Berikut langkah-langkah umum untuk mengubah string menjadi objek datetime:
- Pertama, pastikan kamu telah mengimpor class datetime dari modul datetime.
- Tentukan format string tanggal-waktu sesuai dengan data string yang kamu miliki. Format ini menggunakan direktif seperti %Y untuk tahun empat digit, %m untuk bulan, %d untuk hari, %H untuk jam dalam format 24 jam, dan lain-lain.
- Gunakan metode strptime() dengan string tanggal-waktu dan string formatnya untuk mengonversi menjadi objek datetime.
Berikut beberapa direktif format yang sering digunakan dalam strptime():
- %Y: tahun dengan empat digit (contoh: 2023)
- %m: bulan sebagai angka (01 hingga 12)
- %d: hari dalam bulan sebagai angka (01 hingga 31)
- %H: jam dalam format 24-jam (00 hingga 23)
- %M: menit (00 hingga 59)
- %S: detik (00 hingga 59)
![](https://cdn.prod.website-files.com/61af164800e38cf1b6c60b55/62bbfbb189b700fc937e2e70_Logo-RevoU-5.png)
Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!
Rasakan pengalaman belajar di RevoU Full-Stack Program: Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion. Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)
Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!
Rasakan pengalaman belajar di RevoU Full-Stack Program: Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion. Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)
Masih ragu? Coba dulu 3 hari, GRATIS
di Full-Stack Trial Class!
Rasakan pengalaman belajar di RevoU Full-Stack Program: Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion. Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan Fast-Track (skip semua tes seleksi masuk, langsung ke tahap akhir!)
Artikel Lainnya
![](https://cdn.prod.website-files.com/61af164800e38cf1b6c60b55/668dd75ce02dca0b11593a40_python%20datetime.webp)