python中time、datetime模塊的使用
1、前言
如果您從事過python web的開發(fā),那一定有過這樣的經(jīng)歷,對于各種復(fù)雜繁瑣的業(yè)務(wù)邏輯,摻雜著各種各樣的時間約束,讓人很容易搞的頭暈眼花,比如展示出一天內(nèi)用戶進(jìn)行過的所有操作記錄,再比如進(jìn)行驗證碼驗證時獲取當(dāng)前時間與驗證碼生成時間進(jìn)行比較,檢查是否超過10分鐘過期時間之類。這些關(guān)于時間的業(yè)務(wù)邏輯,要求我們必須能熟練掌握python中關(guān)于時間的兩個模塊,time和datetime,只有用好了這兩個模塊,我們才能在代碼中輕松自如的應(yīng)對。
2、time模塊
time模塊中時間表現(xiàn)的格式主要有三種:
- a、timestamp時間戳,時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量
- b、struct_time時間元組,共有九個元素組。
- c、format time 格式化時間,已格式化的結(jié)構(gòu)使時間更具可讀性。包括自定義格式和固定格式。
1、時間格式轉(zhuǎn)換圖
2、常用方法
import time print(time.time()) # 當(dāng)前時間戳 >>> 1569645479.6079931 print(int(time.time())) >>> 1569645479 print(time.strftime('%Y-%m-%d %H:%M:%S')) # 格式化的時間 >>> 2019-09-28 12:37:59 print(time.strftime('%Y-%m-%d')) >>> 2019-09-28 print(time.strftime('%H:%M:%S')) >>> 12:37:59 print(time.gmtime()) # 獲取標(biāo)準(zhǔn)時區(qū)的時間元組,如果傳入了時間戳,就是把時間戳轉(zhuǎn)換成時間元組 >>> 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) # 使用時間戳獲取代碼執(zhí)行時間 s_time = time.time() for i in range(0,10): time.sleep(1) e_time = time.time() print('代碼運行時間是:', e_time-s_time) >>> 代碼運行時間是: 10.003105163574219 # 字符串格式化時間轉(zhuǎn)換時間戳 str_time = '2019-9-28' print(time.mktime(time.strptime(str_time, '%Y-%m-%d'))) >>> 1569600000.0 # 時間戳轉(zhuǎn)換成格式化的時間字符串 gsh_time = time.time() print(time.strftime('%Y-%m-%d', time.localtime(gsh_time))) >>> 2019-09-28
3、datetime模塊
datatime模塊重新封裝了time模塊,提供更多接口,提供的類有:date,time,datetime,timedelta,tzinfo。
import datetime now = datetime.datetime.now() print(now) >>> 2019-09-28 12:45:59.927901 now = datetime.datetime.now() d1 = now - datetime.timedelta(hours=1) # 獲取前一小時 d2 = now - datetime.timedelta(days=1) # 獲取前一天 print(now) >>> 2019-09-28 12:47:56.662933 print(d1) >>> 2019-09-28 11:47:56.662933 print(d2) >>> 2019-09-27 12:47:56.662933 # datetime對象轉(zhuǎn)換成時間戳 dt = datetime.datetime.now() print(time.mktime(dt.timetuple())) >>> 1569646475.0 # 時間戳轉(zhuǎn)換成datetime對象 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模塊的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Django中使用ModelForm生成HTML標(biāo)簽的方法步驟
在 Django 中,使用 ModelForm 來生成 HTML 表單標(biāo)簽是一種常見且高效的做法,本文主要介紹了Django中使用ModelForm生成HTML標(biāo)簽的方法步驟,感興趣的可以了解一下2024-01-01python3.8+django2+celery5.2.7環(huán)境準(zhǔn)備(python測試開發(fā)django)
這篇文章主要介紹了python測試開發(fā)django之python3.8+django2+celery5.2.7環(huán)境準(zhǔn)備工作,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07Python中的pandas表格模塊、文件模塊和數(shù)據(jù)庫模塊
這篇文章介紹了Python中的pandas表格模塊、文件模塊和數(shù)據(jù)庫模塊,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-05-05Python實現(xiàn)光速定位并提取兩個文件的不同之處
如果你經(jīng)常與Excel或Word打交道,那么從兩份表格/文檔中找到不一樣的元素是一件讓人很頭疼的工作。本文就將以兩份真實的Excel/Word文件為例,講解如何使用Python光速對比并提取文件中的不同之處2022-08-08Python中的數(shù)字類型與轉(zhuǎn)換技巧示例講解
這篇文章主要為大家介紹了Python中的數(shù)字類型與轉(zhuǎn)換技巧示例講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09Python編程scoketServer實現(xiàn)多線程同步實例代碼
這篇文章主要介紹了Python編程scoketServer實現(xiàn)多線程同步實例代碼,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下2018-01-01Win10用vscode打開anaconda環(huán)境中的python出錯問題的解決
這篇文章主要介紹了Win10用vscode打開anaconda環(huán)境中的python出錯,本文給大家分享解決方案,給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05