Manipulasi Tarikh dalam Python

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 menggunakan strptime() 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 kelas timezone atau zoneinfo.

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 kelas time 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 objek datetime.

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 menggunakan timezone.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.

YouTube Video