我有一个yyyyMMdd格式的字符串,我想要dd.MM.yyyy
我的代码出现此错误
java.lang.IllegalArgumentException:无法将给定对象格式化为 日期
String date = "20190226";
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
date = sdf.format(date);
有帮助吗?
答案 0 :(得分:2)
您可以使用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);