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

how to format String to Date with format dd-mm-yyyy in java

我需要一些支持。我希望将变量字符串转换为日期。变量日期应为 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

我正在尝试做一些事情,但获得的格式不是我想要的格式。

您正在做的是将字符串转换为日期。您似乎希望它以特定格式打印日期。

哪里有如何操作的示例:

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
System.out.println(dateFormat.format(date)); //2022/05/18 00:18:43

tl;博士

LocalDate
.parse( "2022-05-12" )
.format(
    DateTimeFormatter.ofPattern( "dd-MM-uuuu" )
)

12-05-2022

java.time

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

ISO 8601

您的输入符合 java.time 类 对 parsing/generating 文本默认使用的 ISO 8601 标准格式。因此无需指定格式模式。

LocalDate

将您的 date-only 输入解析为 date-only 对象,LocalDate

String input = "2022-05-12" ;
LocalDate ld = LocalDate.parse( input ) ;

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

DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd-MM-uuuu" ) ;
String output = ld.format( f ) ;

我建议学习使用 DateTimeFormatter.ofLocalizedDate.

自动本地化,而不是对特定模式进行硬编码

所有这些都已经在 Stack Overflow 上多次讨论过。发帖前一定要彻底搜索。搜索以了解更多信息。