我有一个简单的日期字符串headerValues[5]="24.11.1946"
。我只想将其转换、解析为日期对象。
所以我用
DateTimeFormatter formatter = ofPattern(("dd.MM.yyyy");
headerLine.setStartDate(LocalDate.parse(headerValues[5],datePattern));
输出是2012-04-25
不是我想要的24.11.1946
???
为什么???
编辑
我试过这个...
DateTimeFormatter datePattern = DateTimeFormatter.ofPattern("dd.MM.yyyy", Locale.GERMANY);
String date = "24.11.1946";
System.out.println("Date = "+ LocalDate.parse(date,datePattern));
输出是...
Date = 1946-11-24
最佳答案
这部分代码...
LocalDate.parse(date,datePattern)
创建一个 LocalDate
实例。
因此在您的这行代码中...
System.out.println("Date = "+ LocalDate.parse(date,datePattern));
您实际上正在调用 LocalDate
类的 toString()
方法。
来自该方法的javadoc...
The output will be in the ISO-8601 format
uuuu-MM-dd
.
您不想要这种格式。您需要 datePattern
对象的格式。因此,您应该更改发布到的代码的最后一行...
System.out.println(datePattern.format(LocalDate.parse(date,datePattern)));
换句话说,同一个 DateTimeFormatter
对象既可用于将 String
解析为日期,也可用于将日期格式化为 String
>.
关于java - 为什么 DateTimeFormatter 没有格式化我的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58159519/