Python日期時間處理:datetime

python中處理日期和時間的核心方法包括:1. 獲取當前時間使用datetime.now();2. 提取日期或時間部分分別用date()和time();3. 格式化輸出用strftime(),解析字符串用strptime();4. 時間加減用timedelta,比較用關系運算符;5. 處理時區推薦使用timezone或第三方庫。這些操作覆蓋了時間獲取、格式轉換、計算及跨時區處理等常見需求。

Python日期時間處理:datetime

處理日期和時間是編程中很常見的需求,python 提供了 datetime 模塊來幫助我們完成這些任務。這個模塊功能強大、使用方便,適合大多數與時間相關的操作。

Python日期時間處理:datetime


獲取當前時間和日期

最基礎的操作就是獲取當前的時間和日期。我們可以用 datetime.now() 來快速獲取:

Python日期時間處理:datetime

from datetime import datetime  now = datetime.now() print("當前時間:", now)

這段代碼會輸出類似 2025-04-05 14:30:45.123456 的結果,包含年月日、時分秒和微秒。

立即學習Python免費學習筆記(深入)”;

如果你只需要日期或者時間部分,可以分別使用 date() 和 time() 方法:

Python日期時間處理:datetime

  • now.date() 得到日期部分(如 2025-04-05)
  • now.time() 得到時間部分(如 14:30:45.123456)

時間格式化與解析

很多時候我們需要把時間轉成特定格式的字符串,或者反過來從字符串解析成 datetime 對象

格式化輸出

使用 .strftime() 方法可以自定義輸出格式:

formatted = now.strftime("%Y-%m-%d %H:%M:%S") print("格式化后的時間:", formatted)

常用的格式符包括:

  • %Y 年(四位數)
  • %m 月
  • %d 日
  • %H 小時(24小時制)
  • %M 分鐘
  • %S 秒

字符串解析時間

如果有一個時間字符串,比如 “2025-04-05 14:30:00″,可以用 strptime() 轉成 datetime:

date_str = "2025-04-05 14:30:00" parsed = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")

注意格式字符串要和輸入字符串嚴格匹配,否則會報錯。


時間加減和比較

datetime 可以配合 timedelta 進行加減操作,例如計算昨天或明天的時間:

from datetime import timedelta  yesterday = now - timedelta(days=1) tomorrow = now + timedelta(days=1)

你也可以直接比較兩個時間點的先后:

if yesterday < tomorrow:     print("時間順序正確")

這在判斷時間區間、超時檢測等場景非常實用。


注意時區問題

默認情況下,datetime.now() 返回的是本地時間,不帶時區信息。如果你需要處理跨時區的時間,建議使用第三方庫如 pytz 或 Python 3.9+ 的 zoneinfo:

from datetime import timezone, timedelta  # 設置為 UTC+8 時間 tz = timezone(timedelta(hours=8)) now_with_tz = datetime.now(tz=tz)

有明確時區信息的時間對象才能安全地進行跨時區轉換和比較。


基本上就這些常用操作了。datetime 模塊雖然簡單,但很多細節比如格式字符串、時區處理容易出錯,平時寫的時候多留心一下。

? 版權聲明
THE END
喜歡就支持一下吧
點贊12 分享