python中time、datetime模塊的使用
如果您從事過(guò)python web的開(kāi)發(fā),那一定有過(guò)這樣的經(jīng)歷,對(duì)于各種復(fù)雜繁瑣的業(yè)務(wù)邏輯,摻雜著各種各樣的時(shí)間約束,讓人很容易搞的頭暈眼花,比如展示出一天內(nèi)用戶(hù)進(jìn)行過(guò)的所有操作記錄,再比如進(jìn)行驗(yàn)證碼驗(yàn)證時(shí)獲取當(dāng)前時(shí)間與驗(yàn)證碼生成時(shí)間進(jìn)行比較,檢查是否超過(guò)10分鐘過(guò)期時(shí)間之類(lèi)。這些關(guān)于時(shí)間的業(yè)務(wù)邏輯,要求我們必須能熟練掌握python中關(guān)于時(shí)間的兩個(gè)模塊,time和datetime,只有用好了這兩個(gè)模塊,我們才能在代碼中輕松自如的應(yīng)對(duì)。
2、time模塊time模塊中時(shí)間表現(xiàn)的格式主要有三種:
a、timestamp時(shí)間戳,時(shí)間戳表示的是從1970年1月1日00:00:00開(kāi)始按秒計(jì)算的偏移量 b、struct_time時(shí)間元組,共有九個(gè)元素組。 c、format time 格式化時(shí)間,已格式化的結(jié)構(gòu)使時(shí)間更具可讀性。包括自定義格式和固定格式。1、時(shí)間格式轉(zhuǎn)換圖import timeprint(time.time()) # 當(dāng)前時(shí)間戳>>> 1569645479.6079931print(int(time.time()))>>> 1569645479print(time.strftime(’%Y-%m-%d %H:%M:%S’)) # 格式化的時(shí)間>>> 2019-09-28 12:37:59print(time.strftime(’%Y-%m-%d’))>>> 2019-09-28print(time.strftime(’%H:%M:%S’))>>> 12:37:59print(time.gmtime()) # 獲取標(biāo)準(zhǔn)時(shí)區(qū)的時(shí)間元組,如果傳入了時(shí)間戳,就是把時(shí)間戳轉(zhuǎn)換成時(shí)間元組>>> time.struct_time(tm_year=2019, tm_mon=9, tm_mday=28, tm_hour=4, tm_min=37, tm_sec=59, tm_wday=5, tm_yday=271, tm_isdst=0)print(time.gmtime(1569645453))>>> time.struct_time(tm_year=2019, tm_mon=9, tm_mday=28, tm_hour=4, tm_min=37, tm_sec=33, tm_wday=5, tm_yday=271, tm_isdst=0)# 使用時(shí)間戳獲取代碼執(zhí)行時(shí)間s_time = time.time()for i in range(0,10): time.sleep(1)e_time = time.time()print(’代碼運(yùn)行時(shí)間是:’, e_time-s_time)>>> 代碼運(yùn)行時(shí)間是: 10.003105163574219# 字符串格式化時(shí)間轉(zhuǎn)換時(shí)間戳str_time = ’2019-9-28’print(time.mktime(time.strptime(str_time, ’%Y-%m-%d’)))>>> 1569600000.0# 時(shí)間戳轉(zhuǎn)換成格式化的時(shí)間字符串gsh_time = time.time()print(time.strftime(’%Y-%m-%d’, time.localtime(gsh_time)))>>> 2019-09-283、datetime模塊
datatime模塊重新封裝了time模塊,提供更多接口,提供的類(lèi)有:date,time,datetime,timedelta,tzinfo。
import datetimenow = datetime.datetime.now()print(now)>>> 2019-09-28 12:45:59.927901now = datetime.datetime.now()d1 = now - datetime.timedelta(hours=1) # 獲取前一小時(shí)d2 = now - datetime.timedelta(days=1) # 獲取前一天print(now)>>> 2019-09-28 12:47:56.662933print(d1)>>> 2019-09-28 11:47:56.662933print(d2)>>> 2019-09-27 12:47:56.662933# datetime對(duì)象轉(zhuǎn)換成時(shí)間戳dt = datetime.datetime.now()print(time.mktime(dt.timetuple()))>>> 1569646475.0# 時(shí)間戳轉(zhuǎn)換成datetime對(duì)象sjc_time = time.time()print(datetime.datetime.fromtimestamp(sjc_time))>>> 2019-09-28 12:55:05.500752
以上就是python中time、datetime模塊的使用的詳細(xì)內(nèi)容,更多關(guān)于python time、datetime模塊的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. ASP.NET MVC把數(shù)據(jù)庫(kù)中枚舉項(xiàng)的數(shù)字轉(zhuǎn)換成文字2. ASP.NET Core自定義中間件的方式詳解3. 《CSS3實(shí)戰(zhàn)》筆記--漸變?cè)O(shè)計(jì)(一)4. 用xslt+css讓RSS顯示的跟網(wǎng)頁(yè)一樣漂亮5. 教你JS更簡(jiǎn)單的獲取表單中數(shù)據(jù)(formdata)6. Ajax實(shí)現(xiàn)異步加載數(shù)據(jù)7. 測(cè)試模式 - XSL教程 - 58. html5手機(jī)觸屏touch事件介紹9. CSS3實(shí)現(xiàn)動(dòng)態(tài)翻牌效果 仿百度貼吧3D翻牌一次動(dòng)畫(huà)特效10. 讓chatgpt將html中的圖片轉(zhuǎn)為base64方法示例
