免费资源网,https://freexyz.cn/
目录
  • 前言
  • 一、python时间处理月份加减
  • 二、python日期相减(秒、小时、天、月、年)
    • 1.例子
    • 2.案例:
  • 总结

    前言

    时间日期相加减,单独看没啥意思,但是比如要预测从当前时间开始,未来12个月的股票变化情况,你只拿到了股票的价格的序列值一共12个,需要把它扑到未来12个月,中间可能跨年。

    安装插件

    python-dateutil

    pip install python-dateutil
    

    一、python时间处理月份加减

    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日期相减(秒、小时、天、月、年)

    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小时
    datetime4=today-datetime.timedelta(days=7)#减1天
    datetime5=today-datetime.timedelta(weeks=1)#减1周
    datetime6=today.strftime('%Y-%m-%d')#将时间格式化为字符串
    print('today:',today)
    print('second:',datetime1)
    print('minute:',datetime2)
    print('hour:',datetime3)
    print('day:',datetime4)
    print('week:',datetime5)
    print('时间格式化为字符串:',datetime6)
      
      
    import dateutil.relativedelta
    datetime7= datetime.datetime.strptime(datetime6, '%Y-%m-%d')#将字符串格式为时间
    datetime8 = datetime7 - dateutil.relativedelta.relativedelta(seconds=10)#减10秒
    datetime9 = datetime7 - dateutil.relativedelta.relativedelta(minutes=10)#减10分钟
    datetime10 = datetime7 - dateutil.relativedelta.relativedelta(hours=1)#减减1小时
    datetime11 = datetime7 - dateutil.relativedelta.relativedelta(days=1)#减1天
    datetime12 = datetime7 - dateutil.relativedelta.relativedelta(months=1)#减一个月
    datetime13 = datetime7 - dateutil.relativedelta.relativedelta(years=1)#减一年
    print('字符串格式为时间:',datetime7)
    print('second2:',datetime8)
    print('minute2:',datetime9)
    print('hour2:',datetime10)
    print('day2:',datetime11)
    print('month2:',datetime12)
    print('year:',datetime13)
    

    python时间日期相加减的实现示例

    2.案例:

    处理未来12个月

    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实在是太变态了,用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)

    总结

    免费资源网,https://freexyz.cn/
    声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。