我正在尝试在Python 2.7中编写一个函数,将一系列数字转换为有效日期。到目前为止,这一切都与转换有关。
以下是相关代码:
import datetime
def convert_date(x,y,z):
orig_date = datetime.datetime(x,y,z)
d = datetime.datetime.strptime(str(orig_date), '%Y-%m-%d %H:%M:%S')
result = d.strftime('%m-%d-%Y')
return orig_date
a = convert_date(13,11,12)
print a
每当我运行这个,我得到:
追踪(最近一次通话): 文件“test.py”,第9行,in a = convert_date(13,11,12) 在convert_date中输入第5行的“test.py” d = datetime.datetime.strptime(orig_date,'%Y-%m-%d%H:%M:%S')
TypeError:必须是字符串,而不是datetime.datetime
我知道这是因为strptime
给了我一个datetime object
,但我该如何让它工作?
答案 0 :(得分:17)
对于将来遇到这个问题的任何人,我想我也可以解释一下我是如何工作的。
这是我的代码:
import datetime
def convert_date(x,y,z):
orig_date = datetime.datetime(x,y,z)
orig_date = str(orig_date)
d = datetime.datetime.strptime(orig_date, '%Y-%m-%d %H:%M:%S')
d = d.strftime('%m/%d/%y')
return d
正如我在发布之前应该从错误消息中找到的那样,我只需要在使用orig_date
之前将string
转换为strftime
。
答案 1 :(得分:0)
你得到一个例外。在except
区块中,您只需执行pass
。相反,如果您执行print
或记录异常,您就会知道错误。
由于您收到异常,因此未创建result
对象,因此您会收到错误。