最近中文字幕国语免费完整,中文亚洲无线码49vv,中文无码热在线视频,亚洲自偷自拍熟女另类,中文字幕高清av在线

當(dāng)前位置: 首頁 > 開發(fā)者資訊

Python如何進(jìn)行日期時間處理? datetime模塊常用操作有哪些?

  在 Python 開發(fā)中,日期時間處理是高頻需求,無論是日志記錄、數(shù)據(jù)統(tǒng)計,還是定時任務(wù),都需精準(zhǔn)操作日期時間。Python 標(biāo)準(zhǔn)庫中的datetime模塊提供了完整的日期時間處理工具,支持日期創(chuàng)建、格式轉(zhuǎn)換、差值計算等核心功能,無需依賴第三方庫即可滿足多數(shù)場景需求。小編將拆解datetime模塊的核心組件,詳解常用操作,助你高效處理日期時間。

  一、datetime 模塊核心組件:四類核心對象

  datetime模塊通過四個核心對象封裝日期時間信息,各對象職責(zé)明確,覆蓋不同處理場景:

  datetime.date:僅處理日期(年、月、日),如 2025-08-30;

  datetime.time:僅處理時間(時、分、秒、微秒),如 14:30:45.123456;

  datetime.datetime:同時處理日期與時間,如 2025-08-30 14:30:45,最常用;

  datetime.timedelta:表示時間間隔(如 2 天、3 小時),用于日期時間差值計算。

python1.png

  二、datetime 模塊常用操作:從創(chuàng)建到應(yīng)用

  (一)創(chuàng)建日期時間對象:獲取當(dāng)前或指定日期時間

  獲取當(dāng)前日期時間

  通過datetime.now()獲取當(dāng)前本地日期時間,datetime.utcnow()獲取當(dāng)前 UTC 時間(國際標(biāo)準(zhǔn)時間):

  TypeScript取消自動換行復(fù)制

  from datetime import datetime, date, time

  # 獲取當(dāng)前本地日期時間(datetime對象)

  current_dt = datetime.now()

  print(current_dt) # 輸出:2025-08-30 14:35:22.123456

  # 獲取當(dāng)前日期(date對象)

  current_date = date.today()

  print(current_date) # 輸出:2025-08-30

  # 獲取當(dāng)前時間(time對象)

  current_time = datetime.now().time()

  print(current_time) # 輸出:14:35:22.123456

  創(chuàng)建指定日期時間

  直接通過對象構(gòu)造函數(shù)傳入?yún)?shù),需注意參數(shù)合法性(如月份 1-12、日期 1-31):

  TypeScript取消自動換行復(fù)制

  # 創(chuàng)建指定日期時間(2025年10月1日 8:00:00)

  specified_dt = datetime(2025, 10, 1, 8, 0, 0)

  print(specified_dt) # 輸出:2025-10-01 08:00:00

  # 創(chuàng)建指定日期(2025年5月20日)

  specified_date = date(2025, 5, 20)

  print(specified_date) # 輸出:2025-05-20

  (二)日期時間格式轉(zhuǎn)換:在字符串與對象間切換

  日期時間對象需轉(zhuǎn)換為字符串才能用于輸出或存儲,字符串也需解析為對象才能進(jìn)行計算,核心依賴strftime()(對象轉(zhuǎn)字符串)與strptime()(字符串轉(zhuǎn)對象)。

  對象轉(zhuǎn)字符串:strftime()

  通過格式化符號指定輸出格式(如%Y表示 4 位年份、%m表示 2 位月份):

  TypeScript取消自動換行復(fù)制

  current_dt = datetime.now()

  # 轉(zhuǎn)換為"年-月-日 時:分:秒"格式

  str_dt1 = current_dt.strftime("%Y-%m-%d %H:%M:%S")

  print(str_dt1) # 輸出:2025-08-30 14:40:15

  # 轉(zhuǎn)換為"月/日/年 上/下午時:分"格式

  str_dt2 = current_dt.strftime("%m/%d/%Y %p%I:%M")

  print(str_dt2) # 輸出:08/30/2025 PM02:40

  常用格式化符號:%Y(4 位年)、%m(2 位月)、%d(2 位日)、%H(24 小時制時)、%I(12 小時制時)、%M(分)、%S(秒)、%p(AM/PM)。

  字符串轉(zhuǎn)對象:strptime()

  需指定字符串格式,與strftime()的格式化符號對應(yīng),否則會報錯:

  TypeScript取消自動換行復(fù)制

  # 字符串轉(zhuǎn)datetime對象

  str_dt = "2025-12-25 10:30:00"

  dt_obj = datetime.strptime(str_dt, "%Y-%m-%d %H:%M:%S")

  print(dt_obj) # 輸出:2025-12-25 10:30:00

  print(type(dt_obj)) # 輸出:<class 'datetime.datetime'>

  (三)日期時間計算:差值與偏移

  借助timedelta對象實現(xiàn)日期時間的加減計算,支持天、小時、分鐘等單位的偏移。

  計算日期時間差值

  兩個datetime對象相減,結(jié)果為timedelta對象,包含天數(shù)、秒數(shù)等差值信息:

  TypeScript取消自動換行復(fù)制

  from datetime import timedelta

  start_dt = datetime(2025, 8, 1, 0, 0, 0)

  end_dt = datetime(2025, 8, 30, 12, 0, 0)

  # 計算時間差

  delta = end_dt - start_dt

  print(delta) # 輸出:29 days, 12:00:00(29天12小時)

  print(delta.days) # 輸出:29(天數(shù))

  print(delta.total_seconds()) # 輸出:2553600.0(總秒數(shù))

  日期時間偏移(加減)

  datetime對象與timedelta對象相加 / 減,得到偏移后的日期時間:

  TypeScript取消自動換行復(fù)制

  current_dt = datetime.now()

  # 3天后的同一時間

  future_dt = current_dt + timedelta(days=3)

  print(future_dt) # 輸出:2025-09-02 14:50:30.123456

  # 1小時30分鐘前的時間

  past_dt = current_dt - timedelta(hours=1, minutes=30)

  print(past_dt) # 輸出:2025-08-30 13:20:30.123456

  (四)日期時間屬性與常用判斷

  通過datetime對象的屬性可直接獲取年、月、日等信息,也可判斷日期相關(guān)特性:

  TypeScript取消自動換行復(fù)制

  current_dt = datetime.now()

  # 獲取日期時間屬性

  print(current_dt.year) # 輸出:2025(年份)

  print(current_dt.month) # 輸出:8(月份)

  print(current_dt.day) # 輸出:30(日期)

  print(current_dt.weekday()) # 輸出:5(星期幾,0=周一,6=周日)

  # 判斷是否為閏年(date對象方法)

  current_date = date.today()

  print(current_date.is_leap_year) # 輸出:False(2025年非閏年)

  datetime模塊通過date、time、datetime、timedelta四類對象,覆蓋了日期時間的創(chuàng)建、轉(zhuǎn)換、計算等核心需求。常用操作可總結(jié)為:用now()/ 構(gòu)造函數(shù)創(chuàng)建對象,用strftime()/strptime()實現(xiàn)格式轉(zhuǎn)換,用timedelta完成差值與偏移計算。

  實際開發(fā)中,需注意格式符號的一致性(避免strptime()解析報錯)、時區(qū)問題(若需處理跨時區(qū)時間,可結(jié)合pytz第三方庫)。掌握datetime模塊的常用操作,能高效解決日志格式化、任務(wù)調(diào)度、數(shù)據(jù)時間戳處理等場景需求,是 Python 開發(fā)的必備技能。

 


猜你喜歡