首页 > 解决方案 > 将日期添加到日期时间

问题描述

我不想添加到计划的日期整数。它总是从 1 到 10,但是我的代码有问题。

planned_date = fields.Date(string='Planned Date', required=False,
                           default=fields.Date.today)
def linedate(self):    
    if line.discount > 5:
       
        daysz = line.product_id.seller_ids[0].delay # it's integer from 1 to 10 always
   
        planned = (line.planned_date + timedelta(days=daysz) ).strftime('%Y-%m-%d')
        line.planned_date =  planned
        print line.planned_date

我收到这种错误

计划 = (line.planned_date + timedelta(days=daysz) ).strftime('%Y-%m-%d')

TypeError:强制转换为 Unicode:需要字符串或缓冲区,找到 datetime.timedelta

标签: pythonodoo-8odooodoo-9

解决方案


line.planned_date是一个 Unicode 字符串对象。您需要将其转换为 datetime 对象,然后使用 timedelta 添加。

前任:

import datetime
planned = (datetime.datetime.strptime(line.planned_date, '%Y-%m-%d') + datetime.timedelta(days=daysz) ).strftime('%Y-%m-%d')

推荐阅读