Python之時(shí)間和日期使用小結(jié)
對(duì)于日期的操作可以說(shuō)是比較常見(jiàn)的case了,日期與格式化字符串互轉(zhuǎn),日期與時(shí)間戳互轉(zhuǎn),日期的加減操作等,下面主要介紹下常見(jiàn)的需求場(chǎng)景如何實(shí)現(xiàn)
1. 基本包引入
主要需要引入時(shí)間和日期的處理包,后面的基本操作都是基于此
import datetime import time
2. 獲取當(dāng)前時(shí)間
獲取當(dāng)前時(shí)間,有幾種方式,分別使用time和datetime來(lái)演示
a. time
獲取當(dāng)前時(shí)間,格式化為字符串輸出
now = time.strftime("%Y-%m-%d %H:%M:%S") print(now)
獲取當(dāng)前時(shí)間,以時(shí)間戳方式輸出,結(jié)果為float類(lèi)型,單位為s
now=time.time() print(now)
b. datetime
直接調(diào)用now()函數(shù)獲取當(dāng)前時(shí)間,返回datetime類(lèi)型對(duì)象
now = datetime.datetime.now() print(now)
3. 時(shí)間戳轉(zhuǎn)datetime
函數(shù): datetime.datetime.fromtimestamp()
將時(shí)間戳轉(zhuǎn)換為datetime類(lèi)型,因?yàn)楹笳呖梢赃M(jìn)行日期的計(jì)算(如常見(jiàn)的加減或者格式化)
# 獲取當(dāng)前的時(shí)間戳 now = time.time() # 將時(shí)間差轉(zhuǎn)換為datetime對(duì)象 date = datetime.datetime.fromtimestamp(now) print(date)
4. 時(shí)間戳轉(zhuǎn)格式化日期a. time
函數(shù) time.strftime(format, localtime) 和 time.localtime(timestamp)
借助time的time.strftime
函數(shù)來(lái)實(shí)現(xiàn)轉(zhuǎn)換,這里還需要做一個(gè)額外的處理,將時(shí)間戳轉(zhuǎn)換為struct_time 對(duì)象
now = time.time() # 首先格式化時(shí)間戳為struct_time對(duì)象,接著格式化輸出 time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(now))
b. datetime
函數(shù) datetime.datetime.fromtimestamp 與 datetime.datetime.strftime()
借助前面的知識(shí)點(diǎn)即可實(shí)現(xiàn),先將timestamp轉(zhuǎn)換為datetime, 然后將datetime格式化為字符串
now=time.time() date =datetime.datetime.fromtimestamp(now) date.strftime('%Y-%m-%d %H:%M:%S')
5. 字符串轉(zhuǎn)時(shí)間戳
函數(shù) strptime(str) 與 time.mktime(struct_time)
前面格式化輸出字符串時(shí),主要利用的是strftime
,這里則主要使用 strptime
now='2019-02-11 18:45:22' struct_time=time.strptime(now , '%Y-%m-%d %H:%M:%S') timestamp=time.mktime(struct_time)
6. 字符串轉(zhuǎn)datetime
函數(shù) datetime.datetime.strptime(str, format)
依然使用strptime
函數(shù)來(lái)實(shí)現(xiàn)轉(zhuǎn)換
now='2019-02-11 18:45:22' date=datetime.datetime.strptime(now, '%Y-%m-%d %H:%M:%S')
7. datetime 轉(zhuǎn)字符串
函數(shù) datetime.datetime.strftime(format)
利用strftime
來(lái)實(shí)現(xiàn)
now = datetime.datetime.now() now.strftime('%Y-%m-%d %H:%M:%S')
8. datetime 轉(zhuǎn)時(shí)間戳
函數(shù) datetime.datetime.timestamp()
結(jié)合前面的這個(gè)就比較好實(shí)現(xiàn)了
now = datetime.datetime.now() now.timestamp()
9. datetime轉(zhuǎn)struct_time
now = datetime.datetime.now() # 轉(zhuǎn)換為 struct_time 對(duì)象 t=now.timetuple() # struct_time 輸出時(shí)間戳 timestamp=time.mktime(t)
10. 日期加減操作
函數(shù) datetime.timedelta
日期的加減操作,這里主要是datetime對(duì)象來(lái)操作,一個(gè)簡(jiǎn)單的例子如下
now = datetime.datetime.now() # 前一小時(shí) d1 = now - datetime.timedelta(hours=1) print(d1.strftime("%Y-%m-%d %H:%S:%M")) # 前一天 d2 = now - datetime.timedelta(days=1) print(d2.strftime("%Y-%m-%d %H:%S:%M")) # 上周日 d3 = now - datetime.timedelta(days=now.isoweekday()) print(d3.strftime("%Y-%m-%d %H:%S:%M"), " ", d3.isoweekday()) # 上周一 d31 = d3 - datetime.timedelta(days=6) print(d31.strftime("%Y-%m-%d %H:%S:%M"), " ", d31.isoweekday()) # 上個(gè)月最后一天 d4 = now - datetime.timedelta(days=now.day) print(d3.strftime("%Y-%m-%d %H:%S:%M")) # 上個(gè)月第一天 print(datetime.datetime(d4.year, d4.month, 1))
11. 格式化符號(hào)
%y # 兩位數(shù)的年份表示(00-99) %Y # 四位數(shù)的年份表示(000-9999) %m # 月份(01-12) %d # 月內(nèi)中的一天(0-31) %H # 24小時(shí)制小時(shí)數(shù)(0-23) %I # 12小時(shí)制小時(shí)數(shù)(01-12) %M # 分鐘數(shù)(00=59) %S # 秒(00-59) %a # 本地簡(jiǎn)化星期名稱(chēng) %A # 本地完整星期名稱(chēng) %b # 本地簡(jiǎn)化的月份名稱(chēng) %B # 本地完整的月份名稱(chēng) %c # 本地相應(yīng)的日期表示和時(shí)間表示 %j # 年內(nèi)的一天(001-366) %p # 本地A.M.或P.M.的等價(jià)符 %U # 一年中的星期數(shù)(00-53)星期天為星期的開(kāi)始 %w # 星期(0-6),星期天為星期的開(kāi)始 %W # 一年中的星期數(shù)(00-53)星期一為星期的開(kāi)始 %x # 本地相應(yīng)的日期表示 %X # 本地相應(yīng)的時(shí)間表示 %Z # 當(dāng)前時(shí)區(qū)的名稱(chēng) %% # %號(hào)本身
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 在Python的Flask框架中使用日期和時(shí)間的教程
- python操作日期和時(shí)間的方法
- python中日期和時(shí)間格式化輸出的方法小結(jié)
- Python實(shí)用日期時(shí)間處理方法匯總
- python獲取當(dāng)前日期和時(shí)間的方法
- python中關(guān)于日期時(shí)間處理的問(wèn)答集錦
- Python日期時(shí)間對(duì)象轉(zhuǎn)換為字符串的實(shí)例
- Python常用的日期時(shí)間處理方法示例
- Python中的日期時(shí)間處理詳解
- 在Python中處理日期和時(shí)間的基本知識(shí)點(diǎn)整理匯總
- Python日期時(shí)間模塊datetime詳解與Python 日期時(shí)間的比較,計(jì)算實(shí)例代碼
相關(guān)文章
python pandas實(shí)現(xiàn)excel轉(zhuǎn)為html格式的方法
今天小編就為大家分享一篇python pandas實(shí)現(xiàn)excel轉(zhuǎn)為html格式的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10Python使用matplotlib 模塊scatter方法畫(huà)散點(diǎn)圖示例
這篇文章主要介紹了Python使用matplotlib 模塊scatter方法畫(huà)散點(diǎn)圖,結(jié)合實(shí)例形式分析了Python數(shù)值運(yùn)算與matplotlib模塊圖形繪制相關(guān)操作技巧,需要的朋友可以參考下2019-09-09python使用websocket庫(kù)發(fā)送WSS請(qǐng)求
WebSocket是一種在客戶(hù)端和服務(wù)器之間進(jìn)行雙向通信的協(xié)議,Python中有許多WebSocket庫(kù)可供選擇,其中一個(gè)常用的是websocket庫(kù),使用該庫(kù)可以輕松地發(fā)送WSS請(qǐng)求,需要的朋友可以參考下2023-10-10Python中循環(huán)后使用list.append()數(shù)據(jù)被覆蓋問(wèn)題的解決
這篇文章主要給大家介紹了關(guān)于Python中循環(huán)后使用list.append()數(shù)據(jù)被覆蓋問(wèn)題的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07Pycharm安裝第三方庫(kù)時(shí)Non-zero exit code錯(cuò)誤解決辦法
這篇文章主要介紹了Pycharm安裝第三方庫(kù)時(shí)Non-zero exit code錯(cuò)誤解決辦法,最好的解決辦法可以通過(guò)“Pycharm”左下角的“Terminal”,在pycharm內(nèi)使用pip安裝,以安裝“requests”為例,需要的朋友可以參考下2023-01-01分位數(shù)回歸模型quantile regeression應(yīng)用詳解及示例教程
這篇文章主要為大家介紹了介紹了分位數(shù)回歸quantile regeression的概念詳解及代碼示例教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-11-11Python實(shí)現(xiàn)圖像壓縮和圖像處理詳解
隨著現(xiàn)在短視頻類(lèi)越來(lái)越火,隨之而來(lái)的就是大量的視頻圖像的處理。這篇文章主要為大家介紹了Python如何一鍵實(shí)現(xiàn)圖像壓縮和圖像處理,希望對(duì)你們有所幫助2022-07-07解讀torch.cuda.amp自動(dòng)混合精度訓(xùn)練之節(jié)省顯存并加快推理速度
這篇文章主要介紹了torch.cuda.amp自動(dòng)混合精度訓(xùn)練之節(jié)省顯存并加快推理速度問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08Python mlxtend庫(kù)數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)補(bǔ)充工具功能探索
這篇文章主要介紹了Python mlxtend庫(kù)數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)補(bǔ)充工具功能探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01