我尝试使用此代码将日期字符串转换为另一种格式,但我有这些代码未使用的字符串数。
import dateparser
dateparser.parse(str1[0], date_formats=['%d %B %Y'] )
任何人都可以帮助我吗?
答案 0 :(得分:1)
您可以使用标准库中提供的datetime
转换日期格式:
from datetime import datetime
x = '30 Jan 2010'
res_single = datetime.strptime(x, '%d %b %Y').strftime('%Y-%m-%d')
# '2010-01-30'
lst = ['30 Jan 2015', '10 Dec 2010', '20 Apr 2020', '15 Feb 2005']
res_lst = [datetime.strptime(x, '%d %b %Y').strftime('%Y-%m-%d') for x in lst]
# ['2015-01-30', '2010-12-10', '2020-04-20', '2005-02-15']
答案 1 :(得分:0)
您可以使用datetime
和简单的for
循环。
制剂:
from datetime import datetime #import
dates = ['20 Feb 2010', '21 Mar 2012', '22 Apr 2014', '24 May 2016'] #sample dates
parsed_dates = [] #initialise empty list to store the parsed dates in
实际循环:
for date in dates:
d_parsed = datetime.strptime(date, '%d %b %Y').strftime('%Y-%m-%d') #transform date
parsed_dates.append(d_parsed) #add transformed date to new list
这导致
print(parsed_dates)
#>>> ['2010-02-20', '2012-03-21', '2014-04-22', '2016-05-24']
如果你的日期被隐藏但总是以同样的方式 - 例如始终以一串不同长度的字符串开头,但最后位于评论的示例中 - 使用此代码:
from datetime import datetime #import
hidden_dates = ['For example16 Apr 2018','another example04 Apr 2018', '20 Feb 2010', 'testdtas_21 Mar 2012', 'some characters24 22 Apr 2014', 'words 24 May 2016'] #sample dates
parsed_dates = [] #initialise empty list to store the parsed dates in
for hidden_d in hidden_dates:
date = hidden_d[-11:]
d_parsed = datetime.strptime(date, '%d %b %Y').strftime('%Y-%m-%d') #transform date
parsed_dates.append(d_parsed) #add transformed date to new list
print(parsed_dates)
#>>> ['2010-02-20', '2012-03-21', '2014-04-22', '2016-05-24']