将具有月份名称的字符串转换为datetime

时间:2017-03-23 15:37:59

标签: python datetime

我正在使用pickadate.js,它以此格式返回日期:

8 March, 2017

我想将其转换为datetime格式:

yyyy-mm-dd

在Python中执行此操作的最佳方法是什么?

2 个答案:

答案 0 :(得分:21)

在Python中,使用datetime格式字符串是一个简单的练习:

from datetime import datetime

s = "8 March, 2017"
d = datetime.strptime(s, '%d %B, %Y')
print(d.strftime('%Y-%m-%d'))

有关所有格式限定符的完整说明,请参阅this表。

这里我使用datetime.strptime方法将datepicker.js字符串转换为Python日期时间对象。我使用.strftime方法使用您想要的格式将该对象打印为字符串。起初,这些格式字符串将难以记住,但您可以随时查找它们。最后他们组织得很好。

我确实想知道:在最后一步中,留在JavaScript中可能比切换到Python更好吗?当然,如果您在流程的其他地方使用Python,这是一个简单的解决方案。

答案 1 :(得分:7)

在你的情况下,马克里德的建议可能是最好的。一个经常被忽视的日期替代方案是箭头模块,它提供了一些有趣的功能。在这种情况下,你可以这样做:

>>> import arrow
>>> arrow.get('8 March, 2017', 'D MMMM, YYYY').format('YYYY-MM-DD')
'2017-03-08'

作为功能的一个示例,如果您捕获该日期,则可以使用俄语格式化。

>>> aDate = arrow.get('8 March, 2017', 'D MMMM, YYYY')
>>> aDate.format('YYYY MMMM DD', locale='ru')
'2017 марта 08'