3

我得到格式的日期(YYYY-MM-DD)

然后我想添加 timedelta

    mydate + timedelta(days=1)

我得到错误

    coercing to Unicode: need string or buffer, datetime.timedelta found
4

3 回答 3

8

mydate是一个字符串。尝试这样做:

from datetime import datetime
parsed_date = datetime.strptime(mydate, "%Y-%m-%d")

new_date = parsed_date + timedelta(days=1)
于 2013-10-18T21:05:16.663 回答
2

客户端发送的数据将以 Unicode 格式发送,您必须在服务器端对其进行解析

datetime.strptime(date, '%Y-%m-%d')

如果它是表单的一部分,则数据应在清理时自动重新格式化(尽管您可能需要配置该字段以接受您期望的格式)。

于 2013-10-18T21:07:22.453 回答
1

您必须将字符串日期转换为 python datetime

>>> from datetime import datetime, timedelta
>>> dt_str = "2013/10/11"
>>> dt = datetime.strptime(dt_str, "%Y/%m/%d")
>>> new_dt = dt + timedelta(days=1)
>>> print new_dt
 datetime.datetime(2013, 10, 12, 0, 0)

如果您现在想以字符串形式获取日期:

>>> print new_dt.strftime("%Y/%m/%d")
 '2013/10/12'
于 2013-10-18T21:11:18.243 回答