TypeError:使用strptime

时间:2016-05-07 20:37:46

标签: python datetime typeerror strptime

我正在尝试在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,但我该如何让它工作?

2 个答案:

答案 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对象,因此您会收到错误。