文字列をLocalDate
に解析する必要があります。文字列は正規表現で31.* 03 2016
のようになります(つまり、.*
は、日の後に0文字以上の未知の文字がある可能性があることを意味します)。DateTimeFormatterのワイルドカード
例入力/出力:31xy 03 2016
==>2016-03-31
私は、次のようなパターン可能にしてDateTimeFormatterドキュメントでワイルドカード構文を見つけることを期待していた。
LocalDate.parse("31xy 03 2016", DateTimeFormatter.ofPattern("dd[.*] MM yyyy"));
を、私は何かを見つけることができませんでした。
DateTimeFormatter
でオプションの不明な文字を簡単に表現する方法はありますか?
ps:解析する前に明らかに文字列を変更できますが、それは私が求めているものではありません。
'DateTimeFormatter'に渡す前に文字列を前処理したくない理由はありますか?あなたができることは、 'DateTimeFormatter'を拡張し、' ofPattern() 'メソッドをオーバーライドする独自のクラスを作成することですが、これはお勧めできません。 –
私は、DateTimeFormatterで洗練されたソリューションを好むでしょう - それが存在しない場合、私は計画Bに行くでしょう。DateTimeFormatterは最終的なので、拡張可能ではありません。 – assylias
ああ知りませんでした、知っておいてよかった! –