将日期列表从“/”重新格式化为“-”(使用 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
我有一个日期列表。
['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