我正在使用pickadate.js
,它以以下格式返回日期:
8 March, 2017
我想将这个转换成以下的datetime
格式:
yyyy-mm-dd
用Python最好的方法是什么?
在Python中,使用datetime
格式字符串进行此操作非常容易:
from datetime import datetime
s = "8 March, 2017"
d = datetime.strptime(s, '%d %B, %Y')
print(d.strftime('%Y-%m-%d'))
请参考此表格以获得所有格式限定符的详细描述。
在这里,我使用datetime.strptime
方法将你的datepicker.js字符串转换为Python datetime对象。然后我使用.strftime
方法,使用你想要的格式打印该对象作为字符串输出。一开始这些格式字符串可能很难记住,但你可以随时查询它们,而且它们组织得很好,最终会变得容易记忆。
不过,我在想:与其切换到Python进行最后一步操作,还不如继续使用JavaScript是否更好?当然,如果你在流程的其他地方已经在使用Python,那么这是一个简单的解决方案。
A
/a
和B
/b
分别代表星期和月份,因为当两者同时指定时,它们通常按照这个顺序出现。在这两种情况下,小写字母表示缩写,大写字母表示全名。 - Mark Reeds = "8-Mar-2017, 23:42:42.314"
→ d = datetime.strptime(s, '%d-%b-%Y, %H:%M:%S.%f')
- uhoh在你的情况下,Mark Reed的建议可能是最好的。一个常常被忽视的日期的替代方法是箭头模块,它提供了一些有趣的功能。在这种情况下,你可以这样做:
>>> 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'
$('.datepicker').pickadate({formatSubmit: 'yyyy-mm-dd'});
。 - Mark Reed