首页 > 解决方案 > java - 如何在不使用字符串日期的情况下在java 8中将LocalDate从一种格式转换为另一种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

如何用格式格式化上面dateLocalDate类型 dd-MM-yyyy。但是您可以使用字符串日期模式,即dd-MM-yyyy。输出应该只是LocalDate类型。

标签: javastringdateformattinglocaldate

解决方案


此功能不是类的责任,LocalDate该类是表示日期的不可变日期时间对象。它的职责是不关心字符串格式表示。

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

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

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

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

但是 newdateParsed将再次转换为其默认的 String 表示,因为LocalDateoverridestoString()方法。这是文档中的内容:

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

您可能希望实现自己的此类处理格式的装饰器。


推荐阅读