使用java8将字符串转换为日期

新手上路,请多包涵

我正在尝试使用 java 8 将字符串转换为特定格式。下面是我的代码。即使在提到格式模式为 MM/dd/yyyy 之后,我收到的输出也是 yyyy/DD/MM 格式。有人可以指出我做错了什么吗?

     String str = "01/01/2015";
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
    LocalDate dateTime = LocalDate.parse(str, formatter);
    System.out.println(dateTime);

原文由 user3509208 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 474
1 个回答

那是因为您正在使用 toString 方法,该方法声明:

输出将采用 ISO-8601 格式 uuuu-MM-dd。

您传递给 LocalDate.parse DateTimeFormatter 用于创建 LocalDate ,但它没有“附加”到创建的实例。您将需要使用 LocalDate.format 方法,如下所示:

 String str = "01/01/2015";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
LocalDate dateTime = LocalDate.parse(str, formatter);
System.out.println(dateTime.format(formatter)); // not using toString

原文由 marcospereira 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题