Javaその他

Java8の日付関連処理を実行してみた

Java8のバージョンから、日付関連の処理はLocalDateTime型が利用できるようになった。そのため、開発現場でもLocalDateTime型を利用するように求められてきている。また、日付チェック処理は、SimpleDateFormatでなく、DateTimeFormatterを利用する必要がある。

日付関連の処理としてよく使うものに、日付の妥当性チェックや、日付型⇔文字列型の変換処理がある。これらの実装方法は自力で作ると不具合が起こりやすい。そこで、どのような実装を行えばよいか、その内容をサンプルプログラムとしてまとめることで防備録として残したかったため、その内容を共有する。

前提条件

下記記事のIntelliJ IDEA Community版をダウンロード済であること。

IntelliJ IDEAをインストールしてみた「IntelliJ IDEA(インテリジェイ アイディア)」という、Eclipseと同等の機能をもつJava用統合開発環境を使って、Sp...

また、下記のように、「demoJava」というJavaプロジェクトを作成済であること。
demoJavaプロジェクト

なお、IntelliJ IDEA上でJavaプロジェクトを作成する方法については、IntelliJ IDEA Community版をダウンロードする記事内の、「IntelliJ IDEA上でのJavaプロジェクトの作成・実行」を参照のこと。

やってみたこと

  1. サンプルプログラムの構成と共通処理
  2. 日付チェック処理の実装と結果検証
  3. 日付型を文字列型に変換する処理の実装と結果検証
  4. 文字列型を日付型に変換する処理の実装と結果検証

 

サンプルプログラムの構成と共通処理

今回作成したサンプルプログラムの構成は以下の通り。
日付関連処理のサンプルプログラムの構成

また、今回共通で利用する「StringCheckUtil.java」は以下の通りで、文字列のnull・空文字チェックを行っている。

日付チェック処理の実装と結果検証

日付チェック処理の確認は、「CheckDate.java」で行った。Java8以降とそれ以前で、日付チェック処理の実装が大きく異なるので注意が必要である。また、Java8以降で使用するDateTimeFormatterでは、暦体系に和暦体系を指定したり、ResolverStyleにSTRICT(厳密)の指定したりすることが必要な点も注意が必要である。

また、上記プログラムの実行結果は以下の通り。
日付チェックのプログラムの実行結果



日付型を文字列型に変換する処理の実装と結果検証

日付型を文字列型に変換する処理の確認は、「ConvertDateToStr.java」で行った。今回はJava8以降で利用できるDateTimeFormatterを利用している。

また、上記プログラムの実行結果は以下の通り。
日付型を文字列型に変換するプログラムの実行結果

文字列型を日付型に変換する処理の実装と結果検証

文字列型を日付型に変換する処理の確認は、「ConvertStrToDate.java」で行った。今回はJava8以降で利用できるDateTimeFormatterを利用している。

また、上記プログラムの実行結果は以下の通り。
文字列型を日付型に変換するプログラムの実行結果

要点まとめ

  • Java8以降では、日付型にLocalDateTime型を利用し、日付のフォーマットとしてDateTimeFormatterを利用する。
  • DateTimeFormatterでは、暦体系に和暦体系を指定したり、ResolverStyleにSTRICT(厳密)を指定したりする必要がある。