解析 dMyyyy 类型的日期格式

Adr*_*ian -1 java

我有一个奇怪的日期格式(例如 3.4.2021 -> dMyyyy 零被跳过),我想得到一个格式为 dd.MM.yyyy 的字符串,但我到目前为止尝试的所有内容都抛出异常并说文本不能解析。

我尝试过的示例之一:

String d = LocalDate.parse(startDatePannel).format(DateTimeFormatter.ofPattern("d.M.yyyy"));
Run Code Online (Sandbox Code Playgroud)

我怎样才能解析这个日期?

Bas*_*que 5

阅读Jon Skeet 的评论

定义与您的输入匹配的格式模式。

DateTimeFormatter formatterIn = DateTimeFormatter.ofPattern( "d.M.uuuu" ) ;
Run Code Online (Sandbox Code Playgroud)

解析。

LocalDate localDate = LocalDate.parse( "23.1.2021" , formatterIn ) ;
Run Code Online (Sandbox Code Playgroud)

为所需的输出定义格式模式。

DateTimeFormatter formatterOut = DateTimeFormatter.ofPattern( "dd.MM.uuuu" ) ;
Run Code Online (Sandbox Code Playgroud)

生成表示LocalDate对象值的文本。

String output = localDate.format( formatterOut ) ;
Run Code Online (Sandbox Code Playgroud)

  • @Adrian 正如您所了解的,过多的方法链和方法嵌套会导致代码容易出错。使用简短的单独语句使您的代码更易于阅读和调试……并且通常可以使编译器和 JIT 更容易优化您的代码,这是一个很好的奖励。使用方法链和方法嵌套,让你的代码更容易推理,而不是更难。 (2认同)