我有一个日期列表。
['1/12/2022', '1/13/2022','1/17/2022']
如何将它们重新格式化为这样:
['2022-1-12', '2022-1-13','2022-1-17']
编辑:我的原始帖子询问了错误的格式。我已经更正了它,因为我的意思是格式是";年月日;
我假设您使用的是Python。。。如果我错了,请纠正我。您可以使用enumerate for循环遍历日期列表(enumerate(list(函数可以让您知道循环中每个值的索引(和每个日期,使用str的.replacement((方法将"/"替换为"-",如下所示:
list_of_dates = ['1/12/2022', '1/13/2022','1/17/2022']
for i, date in enumerate(list_of_dates):
list_of_dates[i] = date.replace('/', '-')
或者像这样使用列表理解(谢谢@Eli Harold(:
list_of_dates = [date.replace('/', '-') for date in list_of_dates]
如果你想更改日期字符串中数字的顺序,你可以按"/"或"-"将它们拆分到一个新的列表中,如果你想这样更改顺序:
for i, date in enumerate(list_of_dates):
month, day, year = date.split('-') # assuming you already changed it to dashes
list_of_dates[i] = f'{day}-{month}-{year}'
您可以使用strptime
from datetime import datetime
dates = []
for date_str in ['1/12/2022', '1/13/2022','1/17/2022']:
date = datetime.strptime(date_str, '%m/%d/%Y')
dates.append(date.strftime('%m-%d-%Y'))
我选择拆分各个日期,然后添加"-"分隔符,但您也可以在迭代时替换这些分隔符。一旦你的数据被转换,我就把它推到一个新的重新格式化日期列表中。
不过,对于较长的迭代,这可能不会产生最佳性能。
dates = ['1/12/2022', '1/13/2022','1/17/2022']
newdates = []
for x in range(0, len(dates)):
split_date = dates[x].split('/')
month = split_date[0]
day = split_date[1]
year = split_date[2]
your_date = year +"-"+month+"-"+day
newdates.apppend(your_date)
print(your_date)
输出:
2022-1-12
2022-1-13
2022-1-17
from datetime import datetime
dates = [datetime.strptime(x, "%-m/%-d/%Y") for x in list_of_dates]
new_dates = [x.strftime("%Y-%-m-%-d") for x in dates]
dates = ['1/12/2022', '1/13/2022','1/17/2022']
dates = [x.replace('/', '-') for x in dates]