【Java】parseを使って日付文字列をDateのインスタンスに変換する!

日付文字列をDateのインスタンスに変換するにはSimpleDateFormatクラスのparseメソッドを使用します。

SimpleDateFormatクラスを使用すると、日本の場合は平成、昭和といった元号があるように、国々で独自の日付・時刻のフォーマットへ変換して表示することができます。

今回はparse()メソッドを使って、
日本語(グレゴリオ暦)の場合
日本語(和暦)の場合
英語の場合
存在しない日付を指定した場合
の日付文字列をDateのインスタンスに変換していきます。

parse()メソッドとは

SimpleDateFormatクラスのparse()メソッドは日付文字列を「Date」インスタンスに変換します。

parse()メソッドの書き方

parse()メソッドの構文は下記となります。

パラメータ

日付の文字列
日付を生成するために解析される文字列を参照します。

戻り値

文字列から解析された日付を返すか、エラーの場合はNullを返します。

日付文字列をDateのインスタンスに変換するサンプルコード

日付文字列をDateのインスタンスに変換するサンプルコードを紹介します。
・ 日本語(グレゴリオ暦)の場合
・ 日本語(和暦)の場合
・ 英語の場合
・ 存在しない日付を指定した場合
の日付文字列をDateのインスタンスに変換してみます。

日本語(グレゴリオ暦)の場合

出力結果

Wed Apr 1 14:35:30 UTC 2020

get()メソッドを使ってマップの値を取り出しました。

日本語(和暦)の場合

出力結果

Sun Apr 19 14:11:52 UTC 2020

キー6の場合は値が入っていないため、nullが返されました。

英語の場合

出力結果

Sun Apr 19 14:11:00 UTC 2020

存在しない日付を指定した場合

出力結果

Sat May 02 07:40:39 UTC 2020

今回のポイント

parseで日付文字列をDateのインスタンスに変換

日付文字列を「Date」インスタンスに変換するにはSimpleDateFormatクラスのparseメソッドを使用する。

• 日付を文字列に変換する場合と同様に、SimpleDateFormatクラスを使用することで日付文字列を「Date」インスタンスに変換する

• パターン文字列、ロケールの指定方法も、日付を文字列に変換する場合と同様に年を指定しなかった場合は1970年になり、日を指定しなかった場合は1日になるがフィールドが指定されなかった場合には、それぞれ「0」が設定される

存在しない日時が指定された場合、4月31日が5月1日になることから、その分を繰り上げられる

• 4月31日などのの存在しない日時を厳密に解析したい場合は、SimpleDateFormatクラスのsetLenientメソッドで「false」を指定することで「ParseException」例外が発生させることができる

Writer
壷井

壷井

株式会社flyhawkの壷井です。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。

最新の案件情報

フリーランスエンジニアの案件探し