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

Arj*_*jun 11 python datetime

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

8 March, 2017
Run Code Online (Sandbox Code Playgroud)

我想将其转换为以下datetime格式:

yyyy-mm-dd
Run Code Online (Sandbox Code Playgroud)

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

the*_*Sin 25

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

from datetime import datetime

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

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

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

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

  • 格式说明符"A"/"a"和"B"/"b"分别是工作日和月份,因为它们通常在指定两者时按顺序排列.在这两种情况下,小写字母表示缩写,大写字母表示全名. (2认同)

Bil*_*ell 7

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

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

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

>>> aDate = arrow.get('8 March, 2017', 'D MMMM, YYYY')
>>> aDate.format('YYYY MMMM DD', locale='ru')
'2017 ????? 08'
Run Code Online (Sandbox Code Playgroud)