LoginSignup
1
0

日時チェックがしたい

Posted at

先日ふと
日付形式がyyyy/MM/dd の形式ではうまく実装ができない箇所があった。
uuuu/mm/ddの形式であれば実装できたのだが違いが分からなかったので簡単にまとめる。

以下はどこでも見るような簡単な日付チェックの処理の一文である。


try {
      LocalDate.parse("日付を保持したクラス",DateTimeFormatter.ofPattern("uuuu-MM-dd").withResolverStyle(ResolverStyle.STRICT));
    } catch (DateTimeParseException e) {
      return false;
    }

処理に関して西暦で処理を実施するのであれば、
存在しない日付の自動的な修正も含めてuuuuの形式が無難であった。
逆に、存在しない日付をエラーとしたい場合は上記のように
ResolverStyle.STRICTをつけることで2022/09/31などをエラーとすることができる。
(※そのままだと自動的に09/30に修正してしまう)

逆に、
Japanesedate()などで、和暦に変換したり
GをつけてADを表示したい場合などはyyyyの形式の方が柔軟に対応ができる

基本的なシステムでは西暦でデータを管理する方が主だと思うため、
特段指定がない場合はuuuuの形式の方がデータが崩れる心配などが低いかと思われる

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0