python時(shí)間日期相加減的實(shí)現(xiàn)示例
前言
時(shí)間日期相加減,單獨(dú)看沒啥意思,但是比如要預(yù)測(cè)從當(dāng)前時(shí)間開始,未來12個(gè)月的股票變化情況,你只拿到了股票的價(jià)格的序列值一共12個(gè),需要把它撲到未來12個(gè)月,中間可能跨年。
安裝插件
python-dateutil
pip install python-dateutil
一、python時(shí)間處理月份加減
import datetime from dateutil.relativedelta import relativedelta datetime_now = datetime.datetime.now() datetime_three_month_ago = datetime_now - relativedelta(months=3) print(datetime_three_month_ago)
二、python日期相減(秒、小時(shí)、天、月、年)
1.例子
代碼如下(示例):
import datetime today=datetime.datetime.now() datetime1=today-datetime.timedelta(seconds=10)#減10秒 datetime2=today-datetime.timedelta(minutes=10)#減10分鐘 datetime3=today-datetime.timedelta(hours=1)#減1小時(shí) datetime4=today-datetime.timedelta(days=7)#減1天 datetime5=today-datetime.timedelta(weeks=1)#減1周 datetime6=today.strftime('%Y-%m-%d')#將時(shí)間格式化為字符串 print('today:',today) print('second:',datetime1) print('minute:',datetime2) print('hour:',datetime3) print('day:',datetime4) print('week:',datetime5) print('時(shí)間格式化為字符串:',datetime6) import dateutil.relativedelta datetime7= datetime.datetime.strptime(datetime6, '%Y-%m-%d')#將字符串格式為時(shí)間 datetime8 = datetime7 - dateutil.relativedelta.relativedelta(seconds=10)#減10秒 datetime9 = datetime7 - dateutil.relativedelta.relativedelta(minutes=10)#減10分鐘 datetime10 = datetime7 - dateutil.relativedelta.relativedelta(hours=1)#減減1小時(shí) datetime11 = datetime7 - dateutil.relativedelta.relativedelta(days=1)#減1天 datetime12 = datetime7 - dateutil.relativedelta.relativedelta(months=1)#減一個(gè)月 datetime13 = datetime7 - dateutil.relativedelta.relativedelta(years=1)#減一年 print('字符串格式為時(shí)間:',datetime7) print('second2:',datetime8) print('minute2:',datetime9) print('hour2:',datetime10) print('day2:',datetime11) print('month2:',datetime12) print('year:',datetime13)
2.案例:
處理未來12個(gè)月
def get_dynamic_year(i): today=datetime.datetime.now() tmp = today + dateutil.relativedelta.relativedelta(months=i) return tmp.year def get_dynamic_month(i): today=datetime.datetime.now() tmp = today + dateutil.relativedelta.relativedelta(months=i) return tmp.month pd_insert["year"] = [get_dynamic_year(i) for i in range(1,13)] pd_insert["month"] = [ get_dynamic_month(i) for i in range(1,13) ]
處理未來7天的日期
""" pandas實(shí)在是太變態(tài)了,用row.name的方式獲取行索引 把每一天都加上 """ data_date = today + datetime.timedelta(days=i+1) return data_date.strftime("%Y-%m-%d") pd_insert['forecast_date'] = today.strftime("%Y-%m-%d") pd_insert['data_date'] = pd_insert.apply( lambda x: get_date(x.name, x['forecast_date']), axis=1)
總結(jié)
到此這篇關(guān)于python時(shí)間日期相加減的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)python時(shí)間日期相加減內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
全面解析python當(dāng)前路徑和導(dǎo)包路徑問題
這篇文章主要為大家介紹了python當(dāng)前路徑和導(dǎo)包路徑問題的全面解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05對(duì)Python Class之間函數(shù)的調(diào)用關(guān)系詳解
今天小編就為大家分享一篇對(duì)Python Class之間函數(shù)的調(diào)用關(guān)系詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-01-01PyCharm更換pip源、模塊安裝以及PyCharm依賴包導(dǎo)入導(dǎo)出功能
這篇文章主要給大家介紹了關(guān)于PyCharm更換pip源、模塊安裝以及PyCharm依賴包導(dǎo)入導(dǎo)出功能的相關(guān)資料,我們?cè)谑褂胮ycharm的時(shí)候,pycharm中的虛擬環(huán)境依賴包需要導(dǎo)出成一個(gè)文件,需要的朋友可以參考下2023-11-11基于python實(shí)現(xiàn)監(jiān)聽Rabbitmq系統(tǒng)日志代碼示例
這篇文章主要介紹了基于python實(shí)現(xiàn)監(jiān)聽Rabbitmq系統(tǒng)日志代碼示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11Python實(shí)現(xiàn)圖片批量加入水印代碼實(shí)例
這篇文章主要介紹了Python實(shí)現(xiàn)圖片批量加入水印代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11基于spring boot 日志(logback)報(bào)錯(cuò)的解決方式
今天小編就為大家分享一篇基于spring boot 日志(logback)報(bào)錯(cuò)的解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02