如何在java中使用dd-mm-yyyy格式将字符串格式化为日期[重复]

2024-03-02

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

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


tl;dr

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

12-05-2022

java.time

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

ISO 8601

您的输入符合ISO 8601 https://en.wikipedia.org/wiki/ISO_8601默认使用的标准格式java.time用于解析/生成文本的类。因此无需指定格式模式。

LocalDate

将仅日期输入解析为仅日期对象,LocalDate https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/LocalDate.html.

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

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

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

我建议学习使用自动本地化,而不是硬编码特定模式DateTimeFormatter.ofLocalizedDate https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/format/DateTimeFormatter.html#ofLocalizedDate(java.time.format.FormatStyle).

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在java中使用dd-mm-yyyy格式将字符串格式化为日期[重复] 的相关文章

随机推荐