Python Datetime: Bekerja dengan Tanggal dan Waktu
Pelajari cara menangani tanggal, waktu, zona waktu, dan penghitungan dengan Python. Kuasai pemformatan, penguraian, dan aritmatika menggunakan datetime dan timedelta.
Ikhtisar
Menangani tanggal dan waktu merupakan tantangan yang terkenal dalam pengembangan perangkat lunak, karena tahun kabisat, penyesuaian musim panas, dan format zona waktu yang berbeda. Python mengatasi tantangan ini dengan modul `datetime` bawaannya. Modul ini menyediakan serangkaian kelas objek yang kuat—seperti `date`, `time`, `datetime`, dan `timezone`—yang merepresentasikan dan memanipulasi data temporal dengan rapi, sehingga penghitungan tanggal menjadi mudah.
Salah satu tugas yang paling umum adalah mengubah tanggal menjadi string (pemformatan) dan string menjadi tanggal (parsing). Python menggunakan dua metode utama untuk ini: `.strftime()` (waktu format string) mengonversi objek datetime menjadi string yang dapat dibaca menggunakan kode pemformatan (seperti `%Y` untuk tahun, `%m` untuk bulan, dan `%d` untuk hari). Sebaliknya, `datetime.strptime()` (waktu penguraian string) mem-parsing input string mentah menjadi objek datetime berdasarkan templat format yang cocok, yang sangat penting saat membaca log atau input API.
Melakukan penghitungan tanggal juga didukung penuh menggunakan objek `timedelta`. `timedelta` mewakili durasi waktu (misalnya, 7 hari, 4 jam). Anda dapat menambahkan atau mengurangi `timedelta` dari `datetime` untuk menghitung tanggal yang lalu atau yang akan datang (seperti menentukan tanggal kedaluwarsa). Saat bekerja dengan beberapa zona waktu, penggunaan objek yang mengetahui zona waktu (seperti `zoneinfo` atau `timezone.utc`) sangat penting untuk memastikan perbandingan tanggal tetap akurat di berbagai lokasi server yang berbeda.
Kode & Output Eksekusi
Mengurai string menjadi objek datetime dan menghitung tenggat waktu di masa depan menggunakan timedelta.
from datetime import datetime, timedelta
# Define a specific fixed base date and time (for deterministic runs)
base_date = datetime(2026, 5, 25, 23, 45, 50)
print(f"Base Date/Time: {base_date}")
# Format datetime as string
formatted = base_date.strftime("%Y-%m-%d %H:%M:%S")
print(f"Formatted String: {formatted}")
# Parse string to datetime
date_str = "2026-12-25"
parsed_date = datetime.strptime(date_str, "%Y-%m-%d")
print(f"Parsed Date: {parsed_date}")
# Date arithmetic with timedelta
ten_days_later = base_date + timedelta(days=10)
print(f"Date 10 days later: {ten_days_later.strftime('%Y-%m-%d')}")Base Date/Time: 2026-05-25 23:45:50
Formatted String: 2026-05-25 23:45:50
Parsed Date: 2026-12-25 00:00:00
Date 10 days later: 2026-06-04Implementasi Langkah demi Langkah
- Menghitung masa berlaku uji coba dan tanggal penagihan
- Mengurai string stempel waktu di dalam log akses server
- Menjadwalkan tugas cron otomatis atau laporan berulang
Pertanyaan yang Sering Diajukan
Apa yang dimaksud dengan objek datetime yang naif vs. sadar?
Objek datetime yang naif tidak berisi informasi zona waktu, sedangkan objek datetime yang sadar menyertakan offset zona waktu, sehingga aman untuk penghitungan waktu internasional.
Bagaimana cara menghitung selisih antara dua tanggal?
Mengurangi satu objek datetime dari objek lain akan menghasilkan objek timedelta yang mewakili durasi tepat di antara objek tersebut.
Topik Terkait
Temukan kehebatan modul matematika bawaan Python. Pelajari tentang fungsi trigonometri, logaritma, metode pembulatan, dan konstanta.
Parsing Python JSONPelajari cara membaca, menulis, dan mengurai data JSON dengan Python. Kuasai json.loads, json.dumps, dan sesuaikan encoder/decoder JSON.
Sumber Daya Python yang Direkomendasikan
Perluas pengetahuan Anda dengan tutorial interaktif terkait, lembar contekan, dan perbandingan kode.
Cara Mengurai String ke Datetime dengan Python
Pelajari cara mengonversi string menjadi objek datetime dengan Python. Kuasai metode strptime, parsing string tanggal, tangani zona waktu, dan cegah kesalahan format.
Lembar
Pelajari cara mengurai dan memformat tanggal dan waktu dengan Python menggunakan datetime, strftime, dan strptime.
Python vs JavaScript: Bahasa Pemrograman Mana yang Terbaik?
Perbandingan komprehensif antara Python dan JavaScript. Jelajahi perbedaan sintaksis, kinerja, kasus penggunaan (backend vs frontend), dan contoh pengkodean.