我正在尝试从泡菜文件中获取日期并将日期添加一天。打印语句返回 2018-09-10 。然后在'strftime' requires a 'datetime.date' object but received a 'str'
行出现错误datetime.datetime.strftime(dataHist['last_updated'], '%Y-%m-%d')
Import pickle
dataHistFile = open('dat.pkl', 'rb')
dataHist = pickle.load(dataHistFile, encoding='bytes')
print(dataHist['last_updated'])
dt_obj = datetime.datetime.strftime(dataHist['last_updated'], '%Y-%m-%d')
date = dt_obj + datetime.timedelta(days=1)
2018-09-10
文件“ C:/用户/ Arvinth 初始化中的Kumar / Downloads / strtsmrt-master / gendata.py“,第81行 fetchData()文件,“ f:\ C:/用户/ Arvinth Kumar / Downloads / strtsmrt-master / gendata.py”,第15行 news.init()文件“ C:\ Users \ Arvinth Kumar \ Downloads \ strtsmrt-master \ news.py”,第58行,初始化 getNews()文件getNews中的第38行,“ C:\ Users \ Arvinth Kumar \ Downloads \ strtsmrt-master \ news.py” dt_obj = datetime.datetime.strftime(dataHist ['last_updated'],'%Y-%m-%d')TypeError:描述符'strftime'需要一个 'datetime.date'对象,但收到一个'str'
请帮助!
答案 0 :(得分:2)
有一个演示供您显示 strptime 和 strftime 之间的差异。
import datetime
def datetime_datetime_strptime():
_datetime = datetime.datetime.strptime(
"2018-09-09 18:47:30",
"%Y-%m-%d %H:%M:%S"
)
print(str(_datetime))
def datetime_datetime_strftime():
now = datetime.datetime.now()
print(now.strftime("%Y/%m/%d")) # 2018/09/09
print(now.__format__("%Y/%m/%d")) # 2018/09/09
if __name__ == '__main__':
datetime_datetime_strftime()
datetime_datetime_strptime()
答案 1 :(得分:1)
dt_obj = datetime.datetime.strftime(dataHist['last_updated'], '%Y-%m-%d')
上面的这段代码从日期时间创建了一个字符串,因此无论如何您都必须先添加时间,然后再转换为字符串。
对于反向,您应该使用strptime()
而不是strftime()
,这样您将从字符串中获取日期时间。