java - 为什么 DateTimeFormatter 没有格式化我的字符串?

标签 java datetime datetime-format localdate java-time

我有一个简单的日期字符串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/

相关文章:

java - 下拉值

Java,从文本文件读取(文本文件的格式很奇怪)

r - 如何将Excel日期格式转换为R中的正确日期

java - 在 Java 中解析和格式化日期和时间

c++ - 在C++中读取日期中的月份部分

javascript - angularjs dateTimePicker 如何不使用 UTC 时间?

java - 两个单选组,每个单选组中仅选择一个单选按钮

java - 客户端收到 500(GoogleJsonResponseException),尽管应用引擎端点服务器似乎工作正常

java - 如何在不指定本地化模式的情况下格式化本地化日期?

r - 从R中的Sys.Date()获取当前时间(包括秒)