Python datetime 模塊概述及應(yīng)用場景
一、Python datetime 模塊概述
Python的datetime
模塊是標(biāo)準(zhǔn)庫中用于處理日期和時間的核心模塊,提供了以下核心功能:
- 日期/時間對象化:將日期、時間、日期時間等抽象為對象,支持計算和比較。
- 格式化與解析:支持日期時間與字符串之間的雙向轉(zhuǎn)換。
- 時區(qū)處理:支持本地時間和帶時區(qū)的時間計算(需搭配
pytz
等第三方庫增強)。 - 時間運算:通過
timedelta
實現(xiàn)時間差計算,支持日期時間的加減操作。
二、datetime 模塊核心類解析
1. date
類:處理日期(年、月、日)
- 用途:處理不含時間的純?nèi)掌凇?/li>
- 關(guān)鍵方法:
from datetime import date today = date.today() # 獲取當(dāng)前日期 custom_date = date(2023, 10, 1) # 創(chuàng)建指定日期 print(today.year, today.month, today.day) # 輸出:2023 10 1
2. time
類:處理時間(時、分、秒、微秒)
- 用途:處理不含日期的純時間。
- 示例:
from datetime import time t = time(14, 30, 15) # 14:30:15 print(t.hour, t.minute) # 輸出:14 30
3. datetime
類:組合日期和時間
- 核心功能:同時處理日期和時間,支持時區(qū)(需配置)。
- 常用操作:
from datetime import datetime now = datetime.now() # 當(dāng)前本地時間 utc_now = datetime.utcnow() # 當(dāng)前UTC時間 dt = datetime(2023, 10, 1, 9, 30) # 2023-10-01 09:30:00 # 時間戳轉(zhuǎn)換 timestamp = dt.timestamp() # 轉(zhuǎn)為Unix時間戳 dt_from_ts = datetime.fromtimestamp(1633068600)
4. timedelta
類:時間間隔計算
- 用途:表示兩個時間點之間的差值。
- 示例:
from datetime import datetime, timedelta now = datetime.now() future = now + timedelta(days=7, hours=3) # 7天3小時后 delta = future - now # 計算時間差 print(delta.days) # 輸出:7
5. tzinfo
與時區(qū)處理
- 基礎(chǔ)時區(qū):Python內(nèi)置
timezone
類(需Python 3.2+)。 - 第三方庫:推薦使用
pytz
處理復(fù)雜時區(qū)。 - 示例:
from datetime import datetime, timezone import pytz # 本地時間轉(zhuǎn)UTC local_dt = datetime(2023, 10, 1, 10, 0) utc_dt = local_dt.astimezone(timezone.utc) # 使用pytz處理時區(qū) tz_shanghai = pytz.timezone('Asia/Shanghai') dt_with_tz = tz_shanghai.localize(datetime(2023, 10, 1, 10, 0))
三、日期時間格式化與解析
1. strftime
:日期 → 字符串
dt = datetime(2023, 10, 1, 14, 30) formatted = dt.strftime("%Y-%m-%d %H:%M:%S") # 輸出:2023-10-01 14:30:00
2. strptime
:字符串 → 日期
date_str = "2023-10-01" dt = datetime.strptime(date_str, "%Y-%m-%d") # 解析為datetime對象
3. 常用格式符號
格式符號 | 含義 | 示例 |
---|---|---|
%Y | 四位年份 | 2023 |
%m | 兩位月份 | 10 |
%d | 兩位日期 | 01 |
%H | 24小時制小時 | 14 |
%M | 分鐘 | 30 |
%S | 秒 | 45 |
四、典型應(yīng)用場景
倒計時計算:
end_date = datetime(2023, 12, 31) days_left = (end_date - datetime.now()).days
日志時間戳:
log_time = datetime.now().strftime("[%Y-%m-%d %H:%M:%S]")
用戶輸入處理:
user_input = "2023-10-01" try: dt = datetime.strptime(user_input, "%Y-%m-%d") except ValueError: print("日期格式錯誤!")
五、注意事項
- 時區(qū)敏感性:默認
datetime
對象是“naive”(無時區(qū)),處理跨時區(qū)需顯式指定。 - 性能優(yōu)化:頻繁時間計算建議使用時間戳(
timestamp()
)存儲。 - 閏年處理:
date
類自動處理閏年,如date(2024, 2, 29)
有效。
若您需要更高級的時間處理功能(如自然語言解析),可參考第三方庫dateutil
或arrow
。
到此這篇關(guān)于Python datetime 模塊概述的文章就介紹到這了,更多相關(guān)Python datetime 模塊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python時間處理模塊time和datetime詳解
- Python基本知識之datetime模塊詳解
- python使用datetime模塊處理日期時間及常用功能詳解
- python?datetime模塊詳解
- Python中的datetime包與time包包和模塊詳情
- python 常用日期處理-- datetime 模塊的使用
- Python Datetime模塊和Calendar模塊用法實例分析
- Python基于datetime或time模塊分別獲取當(dāng)前時間戳的方法實例
- Python日期時間模塊datetime詳解與Python 日期時間的比較,計算實例代碼
- python中datetime模塊中strftime/strptime函數(shù)的使用
- Python的時間模塊datetime詳解
- Python中的time模塊與datetime模塊用法總結(jié)
相關(guān)文章
pytorch下的unsqueeze和squeeze的用法說明
這篇文章主要介紹了pytorch下的unsqueeze和squeeze的用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02Pandas庫之DataFrame使用的學(xué)習(xí)筆記
這篇文章主要介紹了Pandas庫之DataFrame使用的學(xué)習(xí)筆記,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06使用Python在Excel中創(chuàng)建和取消數(shù)據(jù)分組
Excel中的分組是一種通過添加層級結(jié)構(gòu)將相鄰行或列組織在一起的功能,當(dāng)分組完成后,用戶可以通過折疊或展開數(shù)據(jù)組來簡化數(shù)據(jù)視圖,這篇博客將介紹如何使用Python在Excel中創(chuàng)建或取消數(shù)據(jù)分組,需要的朋友可以參考下2025-02-02