Python datetime模塊詳細介紹(核心模塊)
Python 的 datetime 模塊是處理日期和時間的核心庫,提供了豐富的類和方法來操作日期、時間、時間間隔和時區(qū)。以下是對該模塊的詳細介紹:
主要類
datetime.date
處理日期(年、月、日)。- 屬性:
year,month,day - 常用方法:
date.today(): 返回當(dāng)前本地日期。date.fromisoformat("YYYY-MM-DD"): 從字符串解析日期。date.replace(year, month, day): 替換日期部分。date.weekday(): 返回星期幾(0=周一, 6=周日)。date.strftime(format): 格式化日期為字符串。
- 屬性:
datetime.time
處理時間(時、分、秒、微秒)。- 屬性:
hour,minute,second,microsecond,tzinfo(時區(qū)) - 常用方法:
time.replace(hour, minute, second, microsecond): 替換時間部分。time.strftime(format): 格式化時間為字符串。
- 屬性:
datetime.datetime
處理日期和時間的組合(最常用)。- 屬性:
year,month,day,hour,minute,second,microsecond,tzinfo - 常用方法:
datetime.now(tz=None): 返回當(dāng)前本地日期時間。datetime.utcnow(): 返回當(dāng)前 UTC 時間。datetime.combine(date, time): 合并日期和時間對象。datetime.strptime(string, format): 解析字符串為日期時間。datetime.timestamp(): 轉(zhuǎn)換為 Unix 時間戳(秒)。datetime.date(): 提取日期部分。datetime.time(): 提取時間部分。datetime.strftime(format): 格式化輸出。
- 屬性:
datetime.timedelta
表示時間間隔(如天、秒、微秒)。- 用途: 計算日期/時間的加減。
- 示例:
future = datetime.now() + timedelta(days=7) # 7天后
datetime.tzinfo(抽象類)
處理時區(qū)信息,需自定義實現(xiàn)。
替代方案: 使用標(biāo)準(zhǔn)庫datetime.timezone(Python 3.2+)或第三方庫pytz。datetime.timezone
實現(xiàn)tzinfo的簡單時區(qū)類。
- 示例:
tz = timezone(timedelta(hours=8)) # UTC+8 時區(qū) dt = datetime(2023, 5, 15, tzinfo=tz)
關(guān)鍵操作示例
1. 獲取當(dāng)前時間
from datetime import datetime now = datetime.now() # 2023-05-15 14:30:45.123456
2. 時間格式化與解析
# 日期時間 → 字符串
s = now.strftime("%Y-%m-%d %H:%M:%S") # "2023-05-15 14:30:45"
# 字符串 → 日期時間
dt = datetime.strptime("2023-05-15", "%Y-%m-%d") # 時間部分默認為 00:00:003. 時間計算
from datetime import timedelta # 加減時間 tomorrow = now + timedelta(days=1) last_hour = now - timedelta(hours=1) # 計算時間差 diff = tomorrow - now print(diff.total_seconds()) # 86400.0 秒
4. 時區(qū)處理
from datetime import timezone, timedelta # 創(chuàng)建 UTC+8 時區(qū) tz_beijing = timezone(timedelta(hours=8)) dt_local = datetime(2023, 5, 15, 14, 30, tzinfo=tz_beijing) # 轉(zhuǎn)換為 UTC 時間 dt_utc = dt_local.astimezone(timezone.utc) # 2023-05-15 06:30:00+00:00
5. 獲取日期/時間部分
date_part = now.date() # 返回 date 對象 time_part = now.time() # 返回 time 對象 year = now.year # 2023
格式化符號表
| 符號 | 含義 | 示例 |
|---|---|---|
%Y | 四位年份 | 2023 |
%m | 兩位月份(01-12) | 05 |
%d | 兩位日期(01-31) | 15 |
%H | 24小時制小時(00-23) | 14 |
%M | 分鐘(00-59) | 30 |
%S | 秒(00-59) | 45 |
%f | 微秒(000000-999999) | 123456 |
%A | 星期全名 | Monday |
%a | 星期縮寫 | Mon |
%B | 月份全名 | May |
%b | 月份縮寫 | May |
最佳實踐
- 處理時區(qū):
優(yōu)先使用timezone或第三方庫pytz(支持 IANA 時區(qū)數(shù)據(jù)庫)。 - 時間存儲:
建議用 UTC 時間存儲,顯示時再轉(zhuǎn)換為本地時間。 - 性能敏感場景:
考慮使用time.monotonic()或time.perf_counter()替代時間差計算。
完整示例
from datetime import datetime, timedelta, timezone
# 1. 獲取當(dāng)前時間(帶時區(qū))
now = datetime.now(timezone.utc)
# 2. 轉(zhuǎn)換為北京時間 (UTC+8)
tz_beijing = timezone(timedelta(hours=8))
beijing_time = now.astimezone(tz_beijing)
# 3. 格式化輸出
formatted = beijing_time.strftime("%Y-%m-%d %H:%M:%S %Z")
print(f"Beijing Time: {formatted}") # e.g., "2023-05-15 22:30:45 UTC+08:00"
# 4. 計算7天后的日期
future = beijing_time + timedelta(days=7)
# 5. 解析字符串時間
dt_parsed = datetime.strptime("2023-12-31", "%Y-%m-%d")通過掌握 datetime 模塊,你可以高效處理絕大多數(shù)日期時間相關(guān)任務(wù)!
到此這篇關(guān)于Python datetime模塊詳解的文章就介紹到這了,更多相關(guān)Python datetime模塊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python時間處理模塊time和datetime詳解
- Python中的time和datetime模塊使用方法詳解
- Python基本知識之datetime模塊詳解
- Python常用模塊之datetime模塊詳解
- python使用datetime模塊處理日期時間及常用功能詳解
- python?datetime模塊詳解
- python 常用日期處理-- datetime 模塊的使用
- python利用datetime模塊計算程序運行時間問題
- Python Datetime模塊和Calendar模塊用法實例分析
- Python基于datetime或time模塊分別獲取當(dāng)前時間戳的方法實例
- python中datetime模塊中strftime/strptime函數(shù)的使用
相關(guān)文章
Python實現(xiàn)去除列表中重復(fù)元素的方法小結(jié)【4種方法】
這篇文章主要介紹了Python實現(xiàn)去除列表中重復(fù)元素的方法,結(jié)合實例形式總結(jié)分析了Python列表去重的4種實現(xiàn)方法,涉及Python針對列表的遍歷、判斷、排序等相關(guān)操作技巧,需要的朋友可以參考下2018-04-04
Python基礎(chǔ)之標(biāo)準(zhǔn)庫和常用的第三方庫案例教程
這篇文章主要介紹了Python基礎(chǔ)之標(biāo)準(zhǔn)庫和常用的第三方庫案例教程,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-07-07
keras的siamese(孿生網(wǎng)絡(luò))實現(xiàn)案例
這篇文章主要介紹了keras的siamese(孿生網(wǎng)絡(luò))實現(xiàn)案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06
python3實現(xiàn)在二叉樹中找出和為某一值的所有路徑(推薦)
這篇文章主要介紹了python3實現(xiàn)在二叉樹中找出和為某一值的所有路徑,本文通過一個實例demo給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-12-12
Union在Python類型注解中的應(yīng)用與最佳實踐
Union” 在中文中通常翻譯為“聯(lián)合”,在數(shù)學(xué)和邏輯學(xué)中,它指的是兩個或多個集合的并集,在 Python 的類型注解中,Union 類型表示一個變量可以是多種類型中的任意一種,這與數(shù)學(xué)中的并集概念相似,本文介紹了Union在Python類型注解中的應(yīng)用與最佳實踐2024-09-09
Python進階之使用selenium爬取淘寶商品信息功能示例
這篇文章主要介紹了Python進階之使用selenium爬取淘寶商品信息功能,結(jié)合實例形式詳細分析了Python使用selenium與requests模塊爬取淘寶商品信息的相關(guān)操作技巧,需要的朋友可以參考下2019-09-09

