Python 日期時間:使用日期和時間

了解如何在 Python 中處理日期、時間、時區和計算。使用日期時間和時間增量來掌握格式化、解析和算術。

在編輯器中嘗試

概述

由於閏年、夏令時調整和不同的時區格式,處理日期和時間是軟體開發中眾所周知的挑戰。 Python 透過其內建的「datetime」模組解決了這些挑戰。該模組提供了一組強大的物件類,例如“date”、“time”、“datetime”和“timezone”,它們可以乾淨地表示和操作時態數據,從而使日期計算變得簡單。

最常見的任務之一是將日期轉換為字串(格式化)以及將字串轉換為日期(解析)。 Python 為此使用兩個主要方法:「.strftime()」(字串格式時間)使用格式程式碼將日期時間物件轉換為可讀字串(例如「%Y」代表年份,「%m」代表月份,「%d」代表日期)。相反,「datetime.strptime()」(字串解析時間)根據匹配的格式模板將原始字串輸入解析為日期時間對象,這在讀取日誌或 API 輸入時至關重要。

使用“timedelta”物件也完全支援執行日期數學。 「timedelta」表示一段時間(例如 7 天、4 小時)。您可以從“datetime”中添加或減去“timedelta”來計算過去或未來的日期(例如確定到期日期)。使用多個時區時,使用時區感知物件(例如「zoneinfo」或「timezone.utc」)對於確保不同伺服器位置之間的日期比較保持準確至關重要。

程式碼和執行輸出

將字串解析為日期時間物件並使用 timedelta 計算未來的截止日期。

datetime_demo.py
在編輯器中嘗試
from datetime import datetime, timedelta

# Define a specific fixed base date and time (for deterministic runs)
base_date = datetime(2026, 5, 25, 23, 45, 50)
print(f"Base Date/Time: {base_date}")

# Format datetime as string
formatted = base_date.strftime("%Y-%m-%d %H:%M:%S")
print(f"Formatted String: {formatted}")

# Parse string to datetime
date_str = "2026-12-25"
parsed_date = datetime.strptime(date_str, "%Y-%m-%d")
print(f"Parsed Date: {parsed_date}")

# Date arithmetic with timedelta
ten_days_later = base_date + timedelta(days=10)
print(f"Date 10 days later: {ten_days_later.strftime('%Y-%m-%d')}")
端子輸出
Base Date/Time: 2026-05-25 23:45:50
Formatted String: 2026-05-25 23:45:50
Parsed Date: 2026-12-25 00:00:00
Date 10 days later: 2026-06-04

逐步實施

  • 計算試用期和計費日期
  • 解析伺服器存取日誌中的時間戳記字串
  • 安排自動 cron 作業或定期報告

常見問題解答

什麼是天真的日期時間對象與有意識的日期時間對象?

簡單的日期時間物件不包含時區訊息,而感知的日期時間物件包含時區偏移量,這使得國際時間計算變得安全。

如何計算兩個日期之間的差異?

將一個日期時間對象減去另一個日期時間對象會傳回一個 timedelta 對象,表示它們之間的確切持續時間。

相關主題

推薦的 Python 資源

透過相關的互動式教學、備忘單和程式碼比較來擴展您的知識。