4

我一直讨厌管理日期、时间、日期时间以及它们所需的各种格式和转换的头痛。我正在参加有关使用 google app 引擎的在线课程,它说要使用 datetime 属性,该属性以以下格式返回日期:

2012-06-25 01:17:40.273000

我试过

datetime.strptime('2012-06-25 01:17:40.273000','%y-%m-%d %H:%M:%S')

但它没有用..

我只想在2012-06-25不使用 hacky 正则表达式或字符串切片解决方案的情况下提取部分。

如何解析并将其转换为正确的格式?

4

2 回答 2

5

终于找到了(在提出问题后不久,但我过去一个小时一直在尝试)

datetime.strptime('2012-06-25 01:17:40.273000','%Y-%m-%d %H:%M:%S.%f')

我想要什么:

datetime.strptime('2012-06-25 01:17:40.273000','%Y-%m-%d %H:%M:%S.%f').strftime('%m-%d-%Y')
于 2012-06-25T01:51:33.477 回答
5

如果您使用的是 datetime 属性,那么您返回的对象是 datetime 实例而不是字符串。

在控制台上

>>> from datetime import datetime
>>> x = datetime.now()
>>> print x
2012-06-25 12:03:15.835467
>>> x.date()
datetime.date(2012, 6, 25)
>>> 
>>> print x.date()
2012-06-25
>>> 

请参阅打印声明。它执行到字符串的隐式转换。如果您在模板中输出 datetime 属性值,这可能就是正在发生的事情。

因此,在您的代码中,您应该只在 datetime 对象上使用 .date() 方法。

于 2012-06-25T04:05:05.373 回答