将字母数字日期字符串转换为数字日期字符串
Convert Alphanumerical Date String to Numerical Date String
我知道那里有类似的问题,但大多数只是使用 strptime
方法将字母数字日期字符串转换为 datetime
对象,这不是我想要的。我要做的就是像这样转换字符串。
可能的输入格式
December 7, 2015
October 24, 2018
期望输出
2015-12-07
2018-10-24
我是怎么做到的
""" funding_expiration[0] is equal to strings like 'December 7, 2015' """
funding_expiration = funding_expiration[0].text.split()
""" still need to convert Month (%B) to ## (%m) """
funding_expiration[1] = funding_expiration[1].replace(',', '')
# add padding to single digit days
if len(funding_expiration[1]) is 1:
funding_expiration[1] = funding_expiration[1].zfill(1)
# format numerical date string
funding_expiration = funding_expiration[2] + '-' + funding_expiration[0] + '-' + funding_expiration[1]
我仍在努力找出一种有效的方法来将月份的全名转换成相应的数字。我是 Python 的新手,所以我想知道是否有更有效的方法来完成此操作?
这是使用第 3 方的解决方案 dateutil
:
from dateutil import parser
L = ['December 7, 2015', 'October 24, 2018']
res_str = [parser.parse(x).strftime('%Y-%m-%d') for x in L]
['2015-12-07', '2018-10-24']
datetime.strptime
也适用于您的情况。您可以使用 %B
指令来解析完整的月份名称。
import datetime
s = 'December 7, 2015'
date_string = str(datetime.datetime.strptime(s, '%B %d, %Y').date())
>>> date_string
'2015-12-07'
我知道那里有类似的问题,但大多数只是使用 strptime
方法将字母数字日期字符串转换为 datetime
对象,这不是我想要的。我要做的就是像这样转换字符串。
可能的输入格式
December 7, 2015
October 24, 2018
期望输出
2015-12-07
2018-10-24
我是怎么做到的
""" funding_expiration[0] is equal to strings like 'December 7, 2015' """
funding_expiration = funding_expiration[0].text.split()
""" still need to convert Month (%B) to ## (%m) """
funding_expiration[1] = funding_expiration[1].replace(',', '')
# add padding to single digit days
if len(funding_expiration[1]) is 1:
funding_expiration[1] = funding_expiration[1].zfill(1)
# format numerical date string
funding_expiration = funding_expiration[2] + '-' + funding_expiration[0] + '-' + funding_expiration[1]
我仍在努力找出一种有效的方法来将月份的全名转换成相应的数字。我是 Python 的新手,所以我想知道是否有更有效的方法来完成此操作?
这是使用第 3 方的解决方案 dateutil
:
from dateutil import parser
L = ['December 7, 2015', 'October 24, 2018']
res_str = [parser.parse(x).strftime('%Y-%m-%d') for x in L]
['2015-12-07', '2018-10-24']
datetime.strptime
也适用于您的情况。您可以使用 %B
指令来解析完整的月份名称。
import datetime
s = 'December 7, 2015'
date_string = str(datetime.datetime.strptime(s, '%B %d, %Y').date())
>>> date_string
'2015-12-07'