Мне нужно написать функцию, которая принимает список дат, которые находятся в разных форматированных строках, и возвращает список Stringdates того же формата. Я пробовал следующий код, но некоторые даты не могут быть проанализированы. пожалуйста, помогите мне получить правильный вывод.
public static void main(String[] args) {
List<String> dateList = new ArrayList<>();
dateList.add("2010/03/30");
dateList.add("15/12/2016");
dateList.add("11-15-2012");
dateList.add("20130720");
changeDates(dateList);
}
public static List<String> changeDates(List<String> dates){
List<String> returnedData = new ArrayList<>();
dates.forEach(parsedDate ->{
try {
Date date1=new SimpleDateFormat("dd/MM/yyyy").parse(parsedDate);
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String yyyyMMdd = sdf.format(date1);
System.out.println(yyyyMMdd);
} catch (ParseException e) {
e.printStackTrace();
}
});
return returnedData;
}
Вывод должен быть таким: [20100330,15122016,11152012,20130720]
Спасибо,
SimpleDateFormat
иDate
. Эти классы плохо спроектированы и давно устарели, а первые, как известно, доставляют много хлопот. Вместо этого используйтеLocalDate
иDateTimeFormatter
из java.time, современного API даты и времени Java а>. - person Ole V.V.   schedule 10.11.2020