一文帶你吃透Python中的日期時間模塊
Python 提供了 日期和時間模塊用來處理日期和時間,還可以用于格式化日期和時間等常見功能。
- 時間間隔是以秒為單位的浮點小數(shù)。
- 每個時間戳都以自從 1970 年 1 月 1 日午夜(歷元)經(jīng)過了多長時間來表示。
一、time模塊使用
Time 模塊包含了大量內(nèi)置函數(shù),既有時間處理的,也有轉(zhuǎn)換時間格式的。
1、獲取當前時間
import time # 獲取時間戳 返回的是浮點型 # 作用 用來計算時間差 print(time.time()) # 1676775733.1080997 # 獲取當?shù)貢r間 返回的是結(jié)構(gòu)化時間 print(time.localtime()) # 獲取UTC時間 返回的還是結(jié)構(gòu)化時間 比中國時間少8小時 print(time.gmtime())

1.1 時間元組
時間元組:Python函數(shù)用一個元組裝起來的9組數(shù)字處理時間。

上面也就是 struct_time 元組。這種結(jié)構(gòu)具有如下屬性:

2、格式化時間
2.1 獲取格式化的時間
import time
# 獲取本地時間
localtime = time.asctime(time.localtime(time.time()))
#localtime = time.asctime(time.localtime())
print("本地時間為 :", localtime)
## 本地時間為 : Mon Feb 20 20:49:10 2023
2.2 格式化時間轉(zhuǎn)換
使用 time 模塊的 strftime 方法來格式化日期,通過 strptime方法來格式化字符串。
# 時間轉(zhuǎn)換為格式字符串
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())))
# 格式字符串轉(zhuǎn)換為時間
str = "2023-02-14 05:20:00"
print(time.strptime(str, "%Y-%m-%d %H:%M:%S"))
# 格式字符串轉(zhuǎn)換為時間戳
print(time.mktime(time.strptime(str, "%Y-%m-%d %H:%M:%S")))

Python中時間日期格式化符號:
- %y 兩位數(shù)的年份表示(00-99)
- %Y 四位數(shù)的年份表示(000-9999)
- %m 月份(01-12)
- %d 月內(nèi)中的一天(0-31)
- %H 24小時制小時數(shù)(0-23)
- %I 12小時制小時數(shù)(01-12)
- %M 分鐘數(shù)(00=59)
- %S 秒(00-59)
- %a 本地簡化星期名稱
- %A 本地完整星期名稱
- %b 本地簡化的月份名稱
- %B 本地完整的月份名稱
- %c 本地相應(yīng)的日期表示和時間表示
- %j 年內(nèi)的一天(001-366)
- %p 本地A.M.或P.M.的等價符
- %U 一年中的星期數(shù)(00-53)星期天為星期的開始
- %w 星期(0-6),星期天為星期的開始
- %W 一年中的星期數(shù)(00-53)星期一為星期的開始
- %x 本地相應(yīng)的日期表示
- %X 本地相應(yīng)的時間表示
- %Z 當前時區(qū)的名稱
- %% %號本身
二、datetime模塊
datetime模塊提供了對時間和日期進行操作的功能。
datatime模塊通過date類、time類、datetime類、timedelta類、timezone類等來獲取或者操作時間、日期。
與time模塊相比,datetime模塊提供的接口更直觀、易用,功能也更加強大。
1、獲取當前時間
from datetime import datetime # 獲取時間 獲取當前時間 并且返回的是格式化字符時間 now = datetime.now() print(now) print(type(now)) print(now.year) print(now.month) print(now.day) print(now.hour) print(now.minute) print(now.second) print(now.microsecond) # 手動指定時間 print(datetime(2023, 2, 20, 20, 50, 00)) # 替換某個時間單位的值 print(now.replace(year=2024)) d1 = datetime.now() d2 = datetime(2024, 2, 20, 20, 50, 00) print(d1 - d2)

2、格式化時間
(1)datetime 轉(zhuǎn) 字符串,通過 strftime()函數(shù)。
from datetime import datetime
now = datetime.now()
# 強制轉(zhuǎn)換字符串
print(str(now))
# 格式化日期 轉(zhuǎn)換 字符串
print(now.strftime("%Y/%m/%d %H:%M:%S"))
print(now.strftime("%Y-%m-%d %H:%M:%S"))
print(now.strftime("%Y/%m/%d"))
print(now.strftime("%Y-%m-%d"))

(2)字符串 轉(zhuǎn) datetime對象,通過 strptime()函數(shù)。
dates = ['2022-02-20 20:23:35', '2024-02-20 20:23:35'] datelist = [datetime.strptime(i, "%Y-%m-%d %H:%M:%S") for i in dates] print(datelist) # [datetime.datetime(2022, 2, 20, 20, 23, 35), datetime.datetime(2024, 2, 20, 20, 23, 35)]
(3)parse() 解析字符串
將字符串形式的日期解析成 datetime對象。
# 需要安裝 pip install python-dateutil
from dateutil.parser import parse
print(parse('2/20/2023'))
print(parse('2023-2-20'))
print(parse('2023.2.20'))
print(parse('2023 2 4'))
print(parse('2023, 6, 2'))

3、計算時間間隔
時間間隔 timedelta
import datetime now = datetime.datetime.now() print(now) # 3天后 dt1 = now + datetime.timedelta(3) print(dt1) # 3天前 dt2 = now + datetime.timedelta(-3) print(dt2) # 3小時30秒后 dt3 = now + datetime.timedelta(hours=3, seconds=30) print(dt3)

三、calendar模塊
calendar模塊的函數(shù)都是日歷相關(guān)的,例如打印某月的字符月歷。
calendar 特點:
- calendar 模塊是基于datetime.date.weekday()對計算每一周的周數(shù)
- calendar 默認星期一是每一周的第一天,星期天是一周的最后一天
- calendar 提供calendar.setfirstweeksday()來更改指定星期幾為一周的第一天
1、打印日歷
import calendar # 打印指定某年的月歷 print(calendar.month(2023, 5)) # 打印2023年歷 # print(calendar.calendar(2023))

上面示例了一些常見的操作,下面參考文章(感謝博主)中詳細列舉的各模塊之間的屬性和方法,這里就不重復造輪子啦。
以上就是一文帶你吃透Python中的日期時間模塊的詳細內(nèi)容,更多關(guān)于Python日期時間模塊的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
使用python構(gòu)建WebSocket客戶端的教程詳解
WebSocket是一種在客戶端和服務(wù)器之間實現(xiàn)雙向通信的協(xié)議,常用于實時聊天、實時數(shù)據(jù)更新等場景,Python提供了許多庫來實現(xiàn) WebSocket客戶端,本教程將介紹如何使用Python構(gòu)建WebSocket客戶端,文中通過代碼示例給大家介紹的非常詳細,需要的朋友可以參考下2023-12-12
關(guān)于python scrapy中添加cookie踩坑記錄
這篇文章主要介紹了關(guān)于python scrapy中添加cookie踩坑記錄,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11
Python安裝jupyter notebook報pywinpty缺少Rust和Cargo問題
文章介紹了在安裝pip install jupyter時遇到的錯誤,并分析了原因,錯誤是由于缺少Rust和Cargo編譯擴展,作者通過訪問rustup.rs下載并安裝Rust,并確保將Rust添加到系統(tǒng)路徑中,重啟電腦后成功解決了問題2025-02-02
python執(zhí)行shell并獲取結(jié)果的詳細示例
在Python中執(zhí)行Shell命令并獲取其結(jié)果,通??梢允褂胹ubprocess模塊,這個模塊允許我們啟動新的進程,連接到它們的輸入/輸出/錯誤管道,并獲取它們的返回碼,下面是一個詳細的示例,展示了如何使用subprocess.run()函數(shù)來執(zhí)行Shell命令并獲取其輸出,需要的朋友可以參考下2024-07-07
Python?Streamlit制作交互式可視化網(wǎng)頁應(yīng)用實例
這篇文章主要為大家介紹了Python?Streamlit制作交互式可視化網(wǎng)頁應(yīng)用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12

