Manipulasi Tanggal di Python

Manipulasi Tanggal di Python

Artikel ini menjelaskan tentang manipulasi tanggal di Python.

YouTube Video

Manipulasi Tanggal di Python

Manipulasi tanggal di Python terutama menggunakan modul datetime. Modul ini menyediakan berbagai kelas dan fungsi untuk memanipulasi tanggal dan waktu.

Berikut adalah beberapa contoh manipulasi tanggal dasar menggunakan modul datetime.

Mendapatkan Tanggal dan Waktu

Anda dapat mendapatkan tanggal dan waktu saat ini seperti berikut. datetime.now() dan datetime.today() mengembalikan hasil yang hampir sama, tetapi dapat ada perbedaan dalam cara mereka menangani zona waktu.

1from datetime import datetime
2
3# Get the current date and time
4now = datetime.now()
5print(f"Current date and time: {now}")
6
7# Get today's date only
8today = datetime.today()
9print(f"Today's date: {today.date()}")
  • Kode ini mengambil dan menampilkan tanggal dan waktu saat ini, serta hanya tanggal hari ini.

Membuat Tanggal dan Waktu Spesifik

Anda dapat membuat tanggal dan waktu tertentu seperti berikut.

1from datetime import datetime
2
3# Create a specific date and time
4specific_date = datetime(2023, 11, 7, 10, 30, 45)
5print(f"Specified date and time: {specific_date}")
  • Kode ini membuat dan menampilkan tanggal dan waktu yang ditentukan (7 November 2023, 10:30:45).

Memformat Tanggal

Pemformatan tanggal dapat dilakukan seperti berikut.

1from datetime import datetime
2
3now = datetime.now()
4
5# Format the date
6formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
7print(f"Formatted date and time: {formatted_date}")
  • Kode ini mengambil tanggal dan waktu saat ini, memformatnya ke format yang ditentukan menggunakan strftime, dan menampilkannya.

String format tanggal

  • %Y: Tahun (4 digit)
  • %m: Bulan (01 hingga 12)
  • %d: Hari (01 hingga 31)
  • %H: Jam (00 hingga 23)
  • %M: Menit (00 hingga 59)
  • %S: Detik (00 hingga 59)

Mengurai string tanggal

Anda dapat mengubah string yang merepresentasikan tanggal menjadi objek datetime.

1from datetime import datetime
2
3date_string = "2023-11-07 10:30:45"
4parsed_date = datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")
5print(f"Parsed date and time: {parsed_date}")
  • Kode ini mengubah tanggal yang direpresentasikan sebagai string menjadi objek datetime menggunakan strptime() dan menampilkannya.

Aritmatika Tanggal

Aritmatika tanggal dapat dilakukan seperti berikut.

 1from datetime import datetime, timedelta
 2
 3now = datetime.now()
 4
 5# Date for one day later
 6tomorrow = now + timedelta(days=1)
 7print(f"Date for one day later: {tomorrow}")
 8
 9# Date for one week ago
10last_week = now - timedelta(weeks=1)
11print(f"Date for one week ago: {last_week}")
12
13# Time for two hours later
14in_two_hours = now + timedelta(hours=2)
15print(f"Time for two hours later: {in_two_hours}")
  • Kode ini menggunakan timedelta untuk menambah atau mengurangi hari dan waktu dari tanggal dan waktu saat ini, menghitung dan menampilkan tanggal dan waktu untuk besok, satu minggu yang lalu, dan dua jam kemudian.

Menangani zona waktu

Anda juga dapat menangani zona waktu dengan modul datetime.

 1from datetime import datetime, timezone, timedelta
 2
 3# Current UTC time
 4utc_now = datetime.now(timezone.utc)
 5print(f"Current UTC time: {utc_now}")
 6
 7# JST (UTC+9)
 8jst = timezone(timedelta(hours=9))
 9jst_now = datetime.now(jst)
10print(f"Current JST time: {jst_now}")
  • datetime secara default mengembalikan 'naive datetime' (tanpa informasi zona waktu). Anda dapat menangani zona waktu secara eksplisit dengan menggunakan kelas timezone atau zoneinfo.

Kelas date dan kelas time

Dengan modul datetime, Anda juga dapat menangani hanya tanggal atau hanya waktu saja.

1from datetime import date, time
2
3d = date(2023, 11, 7)
4t = time(10, 30, 45)
5
6print(f"Date only: {d}")
7print(f"Time only: {t}")
  • Kelas date hanya menangani tanggal, dan kelas time hanya menangani waktu.

Konversi antara datetime dan timestamp

Konversi antara UNIX timestamp dan objek datetime dimungkinkan. Di sini, UNIX timestamp mengacu pada jumlah detik yang berlalu sejak 1 Januari 1970.

 1from datetime import datetime
 2
 3now = datetime.now()
 4
 5# datetime → timestamp
 6timestamp = now.timestamp()
 7print(f"Timestamp: {timestamp}")
 8
 9# timestamp → datetime
10restored = datetime.fromtimestamp(timestamp)
11print(f"Restored datetime: {restored}")
  • Kode ini mengubah tanggal dan waktu saat ini menjadi UNIX timestamp, lalu menggunakan fungsi fromtimestamp() untuk mengubah timestamp tersebut kembali menjadi objek datetime.

Kesalahan umum

Saat menggunakan modul datetime, Anda harus memperhatikan hal-hal berikut.

  • datetime.now() tidak mempertimbangkan zona waktu, jadi untuk internasionalisasi Anda harus secara eksplisit menggunakan timezone.utc.
  • Berhati-hatilah agar tidak tertukar antara %m (bulan) dan %M (menit) dalam string format.

Ringkasan

Modul datetime juga menyediakan banyak fitur lain untuk manipulasi tanggal dan waktu yang fleksibel. Selain itu, tersedia kelas seperti date, time, dan timedelta yang khusus untuk operasi tertentu.

Menggunakan pustaka lain juga memungkinkan manipulasi tanggal yang lebih canggih. Sebagai contoh, pandas mengkhususkan diri dalam menangani data seri waktu, sedangkan dateutil cocok untuk parsing tanggal yang kompleks. Selain itu, pustaka arrow juga berguna.

Anda dapat mengikuti artikel di atas menggunakan Visual Studio Code di saluran YouTube kami. Silakan periksa juga saluran YouTube kami.

YouTube Video