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

标签 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

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

最佳答案

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

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

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

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

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

但新的 dateParsed 将再次转换为其默认的字符串表示形式,因为 LocalDate 覆盖了 toString()方法。以下是文档中的内容:

The output will be in the ISO-8601 format uuuu-MM-dd.

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

关于java - 如何在不使用字符串日期的情况下将 LocalDate 从一种格式转换为 Java 8 中的另一种 LocalDate 格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50969575/

相关文章:

c# - 在 C# 中,检查字符串长度是否大于零会产生错误?

r - 有没有一种简单的方法可以判断某个时间间隔是否与 R 中的周末重叠?

Java - 序列化/反序列化日期时出错

java - Maven环境设置Windows 7错误

java - 从 Maven 调用 groovy 'main' 方法

c - 读取字符串时出错

java - 获取毫秒格式

MySQL 在 Select 语句中将日期转换为年龄

java - 不兼容的类型 - 发现 :int required:boolean

java - DeleteByName 方法不适用于 RandomAccessFile