将日期列表从“/”重新格式化为“-”(使用 python)

Reformat a list of dates from "/" to "-" (using python)

我有一个日期列表。

['1/12/2022', '1/13/2022','1/17/2022']

如何将它们重新格式化为如下所示:

['2022-1-12', '2022-1-13','2022-1-17']

编辑:我原来的post询问格式错误。我已更正它,因为我的意思是格式为“年-月-日”

我假设您正在使用 Python...如果我错了请纠正我。您可以使用枚举 for-loop(enumerate(list) 函数让您知道循环期间每个值的索引)循环遍历日期列表,使用 str 的 .replace() 方法替换 ' /' 和 '-' 像这样:

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}'
dates = ['1/12/2022', '1/13/2022','1/17/2022']
dates = [x.replace('/', '-') for x in dates]

你可以使用 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'))
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']
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