Menguasai Modul datetime Python: Tanggal, Waktu, Timedelta & Strftime Dijelaskan
Pustaka datetime Python menawarkan serangkaian alat yang kuat untuk memanipulasi tanggal, waktu, dan interval waktu. Dengan bekerja dengan objek daripada string atau stempel waktu mentah, pengembang dapat melakukan perhitungan dan pemformatan yang tepat dengan percaya diri.
Kelas datetime Utama
- date – Menangani tahun, bulan, dan hari.
- time – Menangani jam, menit, detik, dan mikrodetik, independen dari tanggal tertentu.
- datetime – Menggabungkan tanggal dan waktu ke dalam satu objek.
- timedelta – Mewakili durasi, memungkinkan penambahan atau pengurangan tanggal dan waktu.
- tzinfo – Dasar abstraksi untuk dukungan zona waktu.
Memulai: Mengimpor dan Membuat Instance
Sebelum manipulasi apa pun, impor kelas yang diperlukan:
from datetime import date, time, datetime, timedelta
Buat objek date:
today = date.today() print(today) # e.g., 2024-04-19
Tanggal dan Waktu Saat Ini
Metode datetime.now() mengembalikan tanggal dan waktu lokal saat ini:
now = datetime.now() print(now) # 2024-04-19 14:35:12.123456
Untuk mengekstrak hanya komponen waktu:
current_time = now.time() print(current_time) # 14:35:12.123456
Memformat Output dengan strftime
Metode strftime mengonversi objek datetime ke string yang dapat dibaca manusia menggunakan kode format:
now.strftime("%Y-%m-%d %H:%M:%S") # "2024-04-19 14:35:12" Direktif umum meliputi:
%Y – Tahun empat digit. %y – Tahun dua digit. %a – Nama hari singkat. %A – Nama hari lengkap. %b – Nama bulan singkat. %B – Nama bulan lengkap. %d – Hari dalam bulan (01-31). %H – Jam (00-23). %I – Jam (01-12). %M – Menit (00-59). %S – Detik (00-59). %p – AM atau PM.
Contoh:
# Format 12 jam dengan AM/PM print(now.strftime("%I:%M:%S %p")) # Format 24 jam print(now.strftime("%H:%M")) Bekerja dengan timedelta
Sebuah timedelta mewakili interval waktu. Ia mendukung aritmatika dengan tanggal dan datetime:
# Buat timedelta 365 hari one_year = timedelta(days=365) # Satu tahun dari hari ini future_date = datetime.now() + one_year print(future_date)
Menghitung hari hingga acara (misalnya, Tahun Baru):
today = date.today() new_year = date(today.year, 1, 1) if new_year < today: new_year = date(today.year + 1, 1, 1) print("New Year is in", (new_year - today).days, "days") else: print("New Year is in", (new_year - today).days, "days") Menggabungkan Semuanya
Di bawah ini adalah skrip siap jalankan yang ringkas yang mendemonstrasikan fitur inti:
from datetime import datetime, date, timedelta # Tanggal dan waktu saat ini now = datetime.now() print("Now:", now) # Contoh format print("ISO format:", now.strftime("%Y-%m-%d %H:%M:%S")) print("12-hour time:", now.strftime("%I:%M:%S %p")) # Operasi timedelta one_week = timedelta(weeks=1) print("One week from now:", now + one_week) # Hari hingga Tahun Baru today = date.today() new_year = date(today.year + (today < date(today.year, 1, 1)), 1, 1) print("Days until New Year:", (new_year - today).days) Ringkasan
Modul datetime Python melengkapi pengembang dengan alat yang kuat dan aman tipe untuk manipulasi tanggal dan waktu:
- Gunakan objek
date, time, dan datetime untuk representasi yang jelas dan eksplisit. - Manfaatkan
strftime untuk pemformatan yang fleksibel dan menyadari locale. - Gunakan
timedelta untuk melakukan aritmatika dan menghitung interval. - Ingatlah untuk mengimpor kelas yang relevan sebelum digunakan; jika tidak, interpreter akan memicu kesalahan.
Alat-alat ini penting untuk tugas yang berkisar dari stempel waktu sederhana hingga logika penjadwalan yang kompleks.