Manipulasi Tarikh dalam Python
Artikel ini menerangkan manipulasi tarikh dalam Python.
YouTube Video
Manipulasi Tarikh dalam Python
Manipulasi tarikh dalam Python kebanyakannya menggunakan modul datetime
. Modul ini menyediakan pelbagai kelas dan fungsi untuk memanipulasi tarikh dan masa.
Berikut adalah beberapa contoh manipulasi tarikh asas menggunakan modul datetime
.
Mendapatkan Tarikh dan Masa
Anda boleh mendapatkan tarikh dan masa semasa seperti berikut. datetime.now()
dan datetime.today()
memberikan hasil yang hampir sama, tetapi mungkin terdapat perbezaan dalam cara mereka mengendalikan zon masa.
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()}")
- Kod ini mendapatkan dan memaparkan tarikh dan masa semasa, serta hanya tarikh hari ini.
Mencipta Tarikh dan Masa Khusus
Anda boleh mencipta tarikh dan masa 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}")
- Kod ini mencipta dan memaparkan tarikh dan masa yang ditentukan (7 November 2023, 10:30:45).
Memformat Tarikh
Pemformatan tarikh boleh 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}")
- Kod ini mendapatkan tarikh dan masa semasa, memformatkannya ke format yang ditentukan menggunakan
strftime
, dan memaparkannya.
Rentetan format tarikh
%Y
: Tahun (4 digit)%m
: Bulan (01 hingga 12)%d
: Hari (01 hingga 31)%H
: Jam (00 hingga 23)%M
: Minit (00 hingga 59)%S
: Saat (00 hingga 59)
Menguraikan rentetan tarikh
Anda boleh menukar rentetan yang mewakili tarikh kepada 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}")
- Kod ini menukar tarikh yang diwakili sebagai rentetan kepada objek
datetime
menggunakanstrptime()
dan memaparkannya.
Aritmetik Tarikh
Aritmetik tarikh boleh 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}")
- Kod ini menggunakan
timedelta
untuk menambah atau menolak hari dan masa dari tarikh dan masa semasa, mengira dan memaparkan tarikh dan masa bagi esok, seminggu yang lalu, dan dua jam kemudian.
Mengendalikan zon masa
Anda juga boleh mengendalikan zon masa 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 lalai mengembalikan 'naive datetime' (tanpa maklumat zon masa). Anda boleh mengendalikan zon masa secara eksplisit dengan menggunakan kelastimezone
atauzoneinfo
.
Kelas tarikh dan kelas masa
Dengan modul datetime
, anda juga boleh mengendalikan hanya tarikh atau hanya masa.
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 mengendalikan tarikh sahaja, dan kelastime
hanya mengendalikan masa sahaja.
Penukaran antara datetime
dan timestamp
Penukaran antara cap masa UNIX dan objek datetime
adalah boleh dilakukan. Di sini, cap masa UNIX merujuk kepada bilangan saat yang telah 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}")
- Kod ini menukar tarikh dan masa semasa kepada cap masa UNIX, kemudian menggunakan fungsi
fromtimestamp()
untuk menukar cap masa itu kembali kepada objekdatetime
.
Kesilapan biasa
Apabila menggunakan modul datetime
, anda harus peka terhadap perkara-perkara berikut.
datetime.now()
tidak mengambil kira zon masa, jadi untuk pengantaraan bahasa, anda perlu menggunakantimezone.utc
secara eksplisit.- Berhati-hati supaya tidak mengelirukan
%m
(bulan) dan%M
(minit) dalam rentetan format.
Ringkasan
Modul datetime
juga menyediakan banyak ciri lain untuk manipulasi tarikh dan masa yang fleksibel. Selain itu, kelas seperti date
, time
, dan timedelta
tersedia, khusus untuk operasi tertentu.
Penggunaan perpustakaan lain juga membolehkan manipulasi tarikh yang lebih maju. Sebagai contoh, pandas
mengkhusus dalam pengendalian data siri masa, manakala dateutil
sesuai untuk penguraian tarikh yang kompleks. Juga, pustaka arrow
juga berguna.
Anda boleh mengikuti artikel di atas menggunakan Visual Studio Code di saluran YouTube kami. Sila lihat juga saluran YouTube kami.