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;
}
谢谢,
你不能神奇地自动读取每一种可能的日期格式。您必须选择一些您支持的格式。
当您选择了一组要支持的格式后,您可以在每个日期尝试其中的每一种格式。当您发现一个解析器在输入上没有失败时,您就使用那个解析器。不过要小心这个。例如,您可能会在这样一种情况下结束,即您将每月的一天解析为一个月(例如,01-02-2020在理论上可以被解释为2020年2月1日和1月1日)。
我认为下面的代码适用于Java9及以上版本。注意,我使用的是java.time库,而不是旧的java.util.date
。
// These seemed to be the formats you used in your example.
// "MM-dd-yyyy" is pretty weird I must say though.
private static final List<DateTimeFormatter> SUPPORTED_FORMATS = Arrays.asList(
DateTimeFormatter.ofPattern("yyyy/MM/dd"),
DateTimeFormatter.ofPattern("dd/MM/yyyy"),
DateTimeFormatter.ofPattern("MM-dd-yyyy"),
DateTimeFormatter.ofPattern("yyyyMMdd"));
private static final DateTimeFormatter OUTPUT_FORMAT =
DateTimeFormatter.ofPattern("yyyyMMdd");
public static Optional<LocalDate> tryParse(DateTimeFormatter formatter, String date) {
try {
return Optional.of(LocalDate.parse(date, formatter));
} catch (DateTimeParseException e) {
return Optional.empty();
}
}
public static LocalDate parseSupportedDate(String date) {
return SUPPORTED_FORMATS.stream()
.flatMap(formatter -> tryParse(formatter, date).stream())
.findFirst()
.orElseThrow(() -> new IllegalArgumentException("Could not parse date " + date));
}
public static List<String> changeDates(List<String> dates) {
return dates.stream()
.map(date -> parseSupportedDate(date))
.map(OUTPUT_FORMAT::format)
.collect(Collectors.toList());
}
我有一个订单和it订单日期的数据库,然后it订单日期将上传到这样的数据库(3-3-2020) 然后在我的shop应用程序中,我使用JSON调用数据库,我想将3-3-2020转换为2020年3月的星期二 我尝试这个解决方案 但它给了我这个错误 那么如何重新格式化日期呢?
Java 8 添加了一个新的 java.time API 来处理日期和时间 (JSR 310)。 我有字符串形式的日期和时间(例如< code >“2014-04-08 12:30”)。如何从给定的字符串中获取< code>LocalDateTime实例? 在我完成对象的工作后:如何将实例转换回与上述格式相同的字符串?
问题内容: 所以我有一个Date对象,我想创建一个方法,以便它以以下格式打印Date: 我怎么做?到目前为止,我只是对日期执行toString,它为我提供了我不需要的所有GMT信息和秒精度。我必须使用DateFormatter还是有更简单的方法来做到这一点? 编辑该标题后,将Java ME包含在标题中,并在发布了一些与原始问题正确的答案后添加标签。 问题答案: 您可以使用class设置日期格式。
现在,我不知道有什么方法可以用这种格式解析给定的日期。
问题内容: 我正在使用bootstrap-datetimepicker和ISO8601 datetime格式,如其选项部分所述 在我的控制器中 它以(console.log)将数据发送到后端 并保存为数据库 在我的模板中 我在HTML上看到的输出为 但是根据Angular doc,它应该用于格式 我想念的是什么? 问题答案: 现在,我已经创建了一个过滤器 作为依赖项添加为 并用作 并将日期显示为
问题内容: 我正在从数据库中提取各种帖子的日期。日期采用以下格式: 如何将这些日期重新格式化为更用户友好的格式: 假设从mysql数据库获取的日期存储在名为: 问题答案: