Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java8中,如何在不使用字符串日期的情况下将LocalDate从一种格式转换为另一种LocalDate格式?_Java_String_Date_Formatting_Localdate - Fatal编程技术网

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

在Java8中,如何在不使用字符串日期的情况下将LocalDate从一种格式转换为另一种LocalDate格式?,java,string,date,formatting,localdate,Java,String,Date,Formatting,Localdate,如何在LocalDate中设置上述日期的格式键入格式 dd-MM-yyyy。但您可以使用字符串日期模式,即dd-MM-yyyy。输出应仅为LocalDate类型。此功能不是类的责任,类是表示日期的不可变日期时间对象。它的职责不是关心字符串格式的表示 要生成或分析字符串,请使用类 回到LocalDate,使用相同的模式: DateTimeFormatter pattern = DateTimeFormatter.ofPattern("dd-MM-yyyy"); String string = da

如何在
LocalDate
中设置上述
日期的格式键入格式

dd-MM-yyyy
。但您可以使用字符串日期模式,即
dd-MM-yyyy
。输出应仅为
LocalDate
类型。

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

要生成或分析字符串,请使用类

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

DateTimeFormatter pattern = DateTimeFormatter.ofPattern("dd-MM-yyyy");
String string = date.format(pattern);
但是新的
dateParsed
将再次转换为默认的字符串表示形式,因为
LocalDate
覆盖了方法。以下是文档中的内容:

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


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

如果不使用字符串date,则无法实现
date.format(DateTimeFormatter.ofPattern(“dd-MM-yyyy”)
您不能更改方法
LocalDate.toString()
的行为,因为类型
LocalDate
是最终的。所以在LocalDate中从一种格式格式化为另一种格式是不可能的?我们需要LocalDate->String(用于格式化)->LocalDate吗,这是不可能的
LocalDate
表示日期本身,而不是其格式。要以不同的格式显示日期(例如,
“dd-MM-yyyy”
),必须使用
DateTimeFormatter
对其进行格式化,生成的结果将是
String
。当您使用相同的模式解析非常相同的
字符串时,您将再次得到
LocalDate
——但是
System.out.println(“date:+date”)
将打印完全相同的内容-它的默认表示形式。提示:与硬编码格式化模式不同,您可以通过调用
DateTimeFormatter.ofLocalized…
方法来自动对java.time进行本地化。
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("dd-MM-yyyy");
String string = date.format(pattern);
LocalDate dateParsed = LocalDate.parse(string, pattern);