如何在不使用String日期的情况下将Java 8中的LocalDate从一种格式转换为另一种LocalDate格式?

时间:2018-06-21 13:18:43

标签: java string date formatting localdate

LocalDate date = LocalDate.now();
System.out.println("date :" + date );//default format is yyyy-MM-dd
System.out.println(date.getClass().getName());//java.time.LocalDate

如何使用以下格式将上述date格式化为LocalDate类型 dd-MM-yyyy。但是您可以使用字符串日期模式,即dd-MM-yyyy。输出应仅为LocalDate类型。

1 个答案:

答案 0 :(得分:3)

此功能不是LocalDate类的责任,该类是表示日期的不可变日期时间对象。它的职责不是在乎String格式的表示形式。

要生成或解析字符串,请使用DateTimeFormatter类。

DateTimeFormatter pattern = DateTimeFormatter.ofPattern("dd-MM-yyyy");
String string = date.format(pattern);

返回LocalDate,使用相同的模式:

LocalDate dateParsed = LocalDate.parse(string, pattern);

但是新的dateParsed将再次转换为其默认的String表示形式,因为LocalDate会覆盖toString()方法。这是文档所说的:

  

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

您可能想要实现自己的此类的装饰器,以处理格式。