关于strftime:在python中将字符串转换为datetime,然后再转换回具有不同格式的字符串

Converting a String to Datetime in Python and back to a String with a Different Format

我有一个字符串,其名称为mydatetime,值为"datetime.datetime(2012,11,16,3,0)"。

1
myDateTime = 'datetime.datetime(2012, 11, 16, 3, 0)'

在python中,如何获得格式为"11-16-12 03:00:00"的字符串?我在python中运行了一个SQL查询来提取一个包含日期时间的列表之后得到了这个字符串。

我试过用一些符合

1
x = myDateTime.strftime("%Y-%m-%d %H:%M:%S")

我得到错误"attribute error:'str'对象没有attribute'strftime'"。

我还尝试使用strptime,但mydatetime不是datetime类型。如果我只能逐字解释字符串,那么我将拥有一个可以使用的日期时间对象。非常感谢您的帮助!


您的对象mydatetime被引号包围:它是一个字符串。只需删除引号:

1
2
myDateTime = datetime.datetime(2012, 11, 16, 3, 0)
myDatetime.strftime("%Y-%m-%d %H:%M:%S")

如果mydatetime是返回字符串(如SQL查询)的函数的输出,则可以尝试使用eval将其转换为常规的python对象。不过,要非常小心,因为eval根本不安全。您可能希望使用第三方模块asteval