如何在python

时间:2018-04-15 09:48:03

标签: python python-3.x date

我尝试使用此代码将日期字符串转换为另一种格式,但我有这些代码未使用的字符串数。

import dateparser
dateparser.parse(str1[0], date_formats=['%d %B %Y'] )

任何人都可以帮助我吗?

2 个答案:

答案 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']