如何在java中将字符串格式化为日期格式dd-mm-yyyy

zan*_*ier 0 java date java-time

我需要一些支持。我希望将变量字符串转换为日期。变量日期的格式应为 dd-MM-yyyy。

 import java.util.Date;
    ....
    ...
    String a = "2022-05-12";
    Date b; // should be dd-MM-yyyy 
    
    do some to format...
    
    return b; // return b with format dd-MM-yyyy, remember this variable is type Date no String
Run Code Online (Sandbox Code Playgroud)

我试图做一些事情,但获得的格式不是所需的格式。

在此输入图像描述

Bas*_*que 6

太长了;博士

LocalDate
.parse( "2022-05-12" )
.format(
    DateTimeFormatter.ofPattern( "dd-MM-uuuu" )
)
Run Code Online (Sandbox Code Playgroud)

12-05-2022

java.time

使用现代java.time类。永远不要使用可怕的Date, Calendar,SimpleDateFormat类。

ISO 8601

您的输入符合java.time类中默认用于解析/生成文本的ISO 8601标准格式。因此无需指定格式模式。

LocalDate

将仅日期输入解析为仅日期对象,即LocalDate.

String input = "2022-05-12" ;
LocalDate ld = LocalDate.parse( input ) ;
Run Code Online (Sandbox Code Playgroud)

要生成所需格式的文本,请指定格式化模式。

DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd-MM-uuuu" ) ;
String output = ld.format( f ) ;
Run Code Online (Sandbox Code Playgroud)

我建议学习使用DateTimeFormatter.ofLocalizedDate.

所有这些都已在 Stack Overflow 上多次介绍过。在发布之前一定要彻底搜索。搜索以了解更多信息。