文章

第24天:日期與時間處理

課程簡介

在 Python 中,處理日期與時間是一個常見的需求,無論是進行計時操作、處理時間差異,還是將日期時間格式化輸出。Python 提供了內建的 datetime 模組,來實現各種日期與時間相關的功能。在今天的課程中,我們將學習如何使用 datetime 模組來創建、操作和格式化日期與時間。


學習內容

1. datetime 模組的介紹

datetime 模組主要提供了以下幾個類別來處理日期與時間:

  • datetime.date:處理日期(年、月、日)。
  • datetime.time:處理時間(時、分、秒、微秒)。
  • datetime.datetime:同時處理日期和時間。
  • datetime.timedelta:處理時間差。
  • datetime.tzinfo:處理時區。

範例:

1
2
3
4
5
from datetime import datetime

# 取得當前日期和時間
now = datetime.now()
print("現在時間:", now)

2. 日期與時間的創建與格式化

2.1 創建日期與時間

可以通過 datetime 類別創建具體的日期與時間。

範例:

1
2
3
4
5
from datetime import datetime

# 創建特定日期和時間
dt = datetime(2024, 10, 24, 14, 30, 45)
print("指定的日期和時間:", dt)

2.2 格式化日期與時間

使用 strftime() 函數可以將日期與時間轉換為指定的字串格式。常用格式符號如下:

  • %Y:四位數的年份
  • %m:月份(01-12)
  • %d:天(01-31)
  • %H:小時(00-23)
  • %M:分鐘(00-59)
  • %S:秒(00-59)

範例:

1
2
formatted_date = dt.strftime("%Y-%m-%d %H:%M:%S")
print("格式化日期時間:", formatted_date)

2.3 解析字串為日期

使用 strptime() 函數可以將字串解析為 datetime 對象。

範例:

1
2
3
date_str = "2024-10-24 14:30:45"
parsed_date = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")
print("解析後的日期時間:", parsed_date)

3. 時間加減與時間差

3.1 使用 timedelta 進行時間加減

timedelta 可以用來進行時間的加減運算。

範例:

1
2
3
4
5
6
7
8
9
from datetime import timedelta

# 加上 10 天
new_date = now + timedelta(days=10)
print("10 天後的日期:", new_date)

# 減去 5 小時
new_time = now - timedelta(hours=5)
print("5 小時前的時間:", new_time)

3.2 計算兩個日期的差異

可以通過相減的方式計算兩個 datetime 對象之間的時間差。

範例:

1
2
3
4
date1 = datetime(2024, 10, 24)
date2 = datetime(2024, 11, 10)
difference = date2 - date1
print("日期差異:", difference.days, "")

4. 時區處理

pytz 模組提供了豐富的時區支持,讓我們能夠在多個時區之間進行時間轉換。

範例:

1
2
3
4
5
6
7
import pytz
from datetime import datetime

# 設定時區
timezone = pytz.timezone('Asia/Taipei')
local_time = datetime.now(timezone)
print("台北時間:", local_time)

教學重點

  • datetime 模組的基本使用:掌握如何創建和操作日期與時間對象。
  • 日期與時間格式化:學會使用 strftime()strptime() 來進行日期與時間的格式轉換。
  • 時間加減與時間差計算:學會使用 timedelta 進行時間的加減運算,並計算兩個時間之間的差異。
  • 時區處理:了解如何使用 pytz 模組進行時區轉換。

任務

  1. 創建一個 datetime 對象,代表今天的日期與時間,並將其格式化為 “YYYY-MM-DD HH:MM:SS” 格式。
  2. 計算從今天起 30 天後的日期。
  3. 計算兩個日期(例如 2024-10-01 和 2024-12-31)之間的天數差異。
  4. 使用 pytz 將當前時間轉換為紐約時區的時間。
本文章以 CC BY 4.0 授權