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
menggunakanstrptime()
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 kelastimezone
atauzoneinfo
.
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 kelastime
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 objekdatetime
.
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 menggunakantimezone.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.