Cara Menangani Tanggal dan Waktu di Python dengan datetime

Menangani tanggal dan waktu merupakan tugas umum dalam pemrograman, dan Python menyediakan modul bawaan yang disebut datetime untuk menangani tanggal dan waktu. Modul ini menyediakan kelas untuk memanipulasi tanggal, waktu, dan interval waktu, sehingga memudahkan untuk melakukan perhitungan tanggal, memformat tanggal, dan mengelola zona waktu. Dalam artikel ini, kita akan membahas cara menggunakan modul datetime untuk menangani tanggal dan waktu secara efektif dalam Python.

Memulai dengan datetime

Modul datetime menyediakan beberapa kelas, seperti datetime.date, datetime.time, datetime.datetime, datetime.timedelta, dan datetime.tzinfo. Kelas-kelas ini memungkinkan kita untuk bekerja dengan tanggal, waktu, dan interval waktu.

Untuk mulai menggunakan modul datetime, Anda perlu mengimpornya:

import datetime

Bekerja dengan Tanggal

Anda dapat membuat objek tanggal menggunakan kelas date. Kelas ini memerlukan tiga parameter: tahun, bulan, dan hari.

from datetime import date

# Create a date object
my_date = date(2023, 9, 4)
print(my_date)  # Output: 2023-09-04

Anda juga dapat mengakses komponen individual tanggal, seperti tahun, bulan, dan hari:

print(my_date.year)   # Output: 2023
print(my_date.month)  # Output: 9
print(my_date.day)    # Output: 4

Bekerja dengan Waktu

Kelas time memungkinkan Anda membuat objek waktu. Kelas ini memerlukan jam, menit, detik, dan mikrodetik (opsional).

from datetime import time

# Create a time object
my_time = time(14, 30, 45)
print(my_time)  # Output: 14:30:45

Mirip dengan tanggal, Anda dapat mengakses komponen individual dari objek waktu:

print(my_time.hour)   # Output: 14
print(my_time.minute) # Output: 30
print(my_time.second) # Output: 45

Menggabungkan Tanggal dan Waktu dengan datetime

Kelas datetime menggabungkan tanggal dan waktu menjadi satu objek. Anda dapat membuat objek datetime dengan memasukkan tahun, bulan, hari, jam, menit, detik, dan mikrodetik (opsional).

from datetime import datetime

# Create a datetime object
my_datetime = datetime(2023, 9, 4, 14, 30, 45)
print(my_datetime)  # Output: 2023-09-04 14:30:45

Anda dapat mengakses komponen tanggal dan waktu dari objek datetime:

print(my_datetime.date())  # Output: 2023-09-04
print(my_datetime.time())  # Output: 14:30:45

Mendapatkan Tanggal dan Waktu Saat Ini

Modul datetime menyediakan metode praktis untuk mendapatkan tanggal dan waktu saat ini, atau keduanya:

# Current date
today = date.today()
print(today)  # Output: (current date)

# Current date and time
now = datetime.now()
print(now)  # Output: (current date and time)

Aritmatika Tanggal dengan timedelta

Kelas timedelta mewakili durasi, yang merupakan selisih antara dua tanggal atau waktu. Kelas ini memungkinkan Anda melakukan perhitungan tanggal, seperti menambah atau mengurangi hari dari suatu tanggal.

from datetime import timedelta

# Create a timedelta object
delta = timedelta(days=7)

# Add 7 days to the current date
future_date = today + delta
print(future_date)

Anda juga dapat menghitung perbedaan antara dua tanggal:

# Calculate the difference between two dates
date1 = date(2023, 9, 4)
date2 = date(2023, 9, 11)
difference = date2 - date1
print(difference.days)  # Output: 7

Memformat Tanggal dan Waktu

Metode strftime() memungkinkan Anda memformat tanggal atau waktu menjadi string. Metode ini menggunakan kode format untuk menentukan format yang diinginkan:

# Format a date object
formatted_date = today.strftime('%B %d, %Y')
print(formatted_date)  # Output: September 04, 2023

Kode format umum meliputi:

  • %Y - Tahun (misalnya, 2023)
  • %m - Bulan sebagai angka desimal dengan nol (misalnya, 09)
  • %d - Tanggal dalam bulan sebagai angka desimal dengan nol (misalnya, 04)
  • %H - Jam (jam 24 jam) sebagai angka desimal dengan nol (misalnya, 14)
  • %M - Menit sebagai angka desimal dengan nol (misalnya, 30)
  • %S - Detik sebagai angka desimal dengan nol (misalnya, 45)

Menguraikan Tanggal dari String

Metode strptime() memungkinkan Anda mengubah string menjadi objek datetime, dengan format string tanggal:

# Parse a date from a string
date_str = '2023-09-04'
parsed_date = datetime.strptime(date_str, '%Y-%m-%d')
print(parsed_date)

Bekerja dengan Zona Waktu

Modul datetime mendukung objek datetime yang mengetahui zona waktu menggunakan pustaka pytz. Untuk bekerja dengan zona waktu, Anda perlu menginstal pytz:

pip install pytz

Kemudian, Anda dapat menetapkan zona waktu ke objek datetime:

from datetime import datetime
import pytz

# Set timezone to UTC
utc_zone = pytz.utc
now_utc = datetime.now(utc_zone)
print(now_utc)

Kesimpulan

Modul datetime dalam Python menyediakan berbagai alat canggih untuk menangani tanggal dan waktu, termasuk membuat, memformat, mengurai, dan melakukan aritmatika dengan objek tanggal dan waktu. Baik Anda perlu memanipulasi tanggal, bekerja dengan zona waktu, atau memformat tanggal dan waktu untuk ditampilkan, modul datetime telah menyediakannya untuk Anda.