一文帶你吃透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))
上面示例了一些常見的操作,下面參考文章(感謝博主)中詳細列舉的各模塊之間的屬性和方法,這里就不重復(fù)造輪子啦。
以上就是一文帶你吃透Python中的日期時間模塊的詳細內(nèi)容,更多關(guān)于Python日期時間模塊的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python正則表達式re.sub各個參數(shù)的超詳細講解
Python 的 re 模塊提供了re.sub用于替換字符串中的匹配項,下面這篇文章主要給大家介紹了關(guān)于python正則表達式re.sub各個參數(shù)的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-07-07Python使用get_text()方法從大段html中提取文本的實例
今天小編就為大家分享一篇Python使用get_text()方法從大段html中提取文本的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08Python基于二分查找實現(xiàn)求整數(shù)平方根的方法
這篇文章主要介紹了Python基于二分查找實現(xiàn)求整數(shù)平方根的方法,涉及Python的二分查找算法與數(shù)學運算相關(guān)技巧,需要的朋友可以參考下2016-05-05python判斷all函數(shù)輸出結(jié)果是否為true的方法
在本篇內(nèi)容里小編給各位整理的是一篇關(guān)于python判斷all函數(shù)輸出結(jié)果是否為true的方法,有需要的朋友們可以學習下。2020-12-12