Java无法将给定对象格式化为日期

时间:2019-02-26 16:09:11

标签: java

我有一个yyyyMMdd格式的字符串,我想要dd.MM.yyyy

我的代码出现此错误

  

java.lang.IllegalArgumentException:无法将给定对象格式化为   日期

String date = "20190226";
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");                  
date = sdf.format(date);

有帮助吗?

2 个答案:

答案 0 :(得分:2)

java.time

您可以使用DateTimeFormatter的Java 8和更高版本。

解析文本。

String str = "20190226";
DateTimeFormatter inputFormat = DateTimeFormatter.ofPattern("yyyyMMdd");
LocalDate dateTime = LocalDate.parse(str, inputFormat);

生成文本。

DateTimeFormatter outputFormat = DateTimeFormatter.ofPattern("dd.MM.yyyy");
System.out.println(dateTime.format(outputFormat));
  

26.02.2019

大多数 java.time 功能都已在ThreeTen-Backport项目中反向移植到Java 6和Java 7。在ThreeTenABP中进一步适用于较早的Android(<26)。参见How to use ThreeTenABP…

答案 1 :(得分:1)

您可以像这样将java.util.Date解析为字符串:

    String dateStr = "20190226";
    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
    Date date = sdf.parse(dateStr);
    sdf = new SimpleDateFormat("dd.MM.yyyy");
    dateStr = sdf.format(date);