我有以下输入作为
Map<String,String>
1) MM dd yyyy = 08 10 2019
2) dd MM yyyy = 10 05 2019
3) dd MM yyyy = 05 10 2008
4) yyyy dd MM = 2001 24 01
我想将所有这些日期转换为“yyyy-MM-dd”格式
目前,我正在使用
for (String eachFormat : formats) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(eachFormat);
try {
SimpleDateFormat targetFormat = new SimpleDateFormat("yyyy-MM-dd");
Date inputDate = simpleDateFormat.parse(parsedDate.get(eachFormat));
return targetFormat.format(inputDate);
} catch (ParseException e) {
LOGGER.error(e);
}
}
但“simpleDateFormat.parse()”将转换并使用时区给我日期。我在转换时不需要时区。我想直接将一种日期格式转换为另一种日期格式。我正在探索 LocalDate 作为 java 8 功能。但如果我尝试就会失败
DateTimeFormatter target = DateTimeFormatter.ofPattern(eachFormat);
LocalDate localDate = LocalDate.parse(parsedDate.get(eachFormat),target);
请帮助我使用 LocalDate 和 DateTimeFormatter。
编辑 1:好的,我对输入地图示例不好,这是我在程序中得到的实际地图
1) MM dd yy = 8 12 2019
2) dd MM yy = 4 5 2007
3) yy dd MM = 2001 10 8
我猜识别并向我提供这张地图的人正在使用 SimpleDate 格式化程序,因为我假设 SimpleDateFormatter 可以将日期“8 12 2019”识别为“MM dd yy”或“M dd yyyy”或“MM d yy”或“ MM d yyyy”....
但“LocalDate”非常严格,它不解析日期
"8 12 2019" for "dd MM yy"
它严格解析当且仅当日期格式
"8 12 2019" is "d MM yyyy"
……现在我该怎么办?
噜噜哒
相关分类