当我尝试使用此代码时:
date = datetime.datetime.now().strftime('%I:%M')
它给了我这个错误:
“combine()参数1必须是datetime.date,而不是str”。
修改
我认为我的错误就在这里:
naive_start = datetime.datetime.combine(date, datetime.time.min)
我不确定我做错了什么。我该怎么办?
答案 0 :(得分:1)
date
var的类型不是date/datetime
个实例,而是string
。
>>> import datetime
>>> date = datetime.datetime.now().strftime('%I:%M')
>>> type(date)
<type 'str'>
我猜您正在尝试将其与datetime.datetime.combine
>>> datetime.datetime.combine(date, datetime.time(10, 23))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: combine() argument 1 must be datetime.date, not str
虽然你应该使用date/datetime
对象。
>>> datetime.datetime.combine(datetime.datetime.now(), datetime.time(10, 23))
datetime.datetime(2015, 2, 23, 10, 23)
答案 1 :(得分:0)
date = datetime.datetime.now().strftime('%I:%M') naive_start = datetime.datetime.combine(date, datetime.time.min)
我应该采取哪些不同的方式?
“combine()参数1必须是datetime.date,而不是str”。错误消息表明你应该不调用.strftime()
方法来转换{ {1}}将对象转换为字符串,将其删除:
datetime
其中import datetime
date = datetime.datetime.now()
naive_start = datetime.datetime.combine(date, datetime.time.min)
包含当地时间的一天(午夜)的开头,作为一个天真的naive_start
对象。