Javaコラム Javaエンジニアのためのお役立ちコラム

Java

JavaのSimpleDateFormatクラスとは?Date型とString型の変換方法を解説

2021年08月02日
SE
JavaのSimpleDateFormatクラスはどのようなことができるのでしょうか。
PM
JavaでDate型を使う際にString型に変換できます。

JavaのSimpleDateFormatクラスとは?


今回は、JavaのSimpleDateFormatクラスについて解説します。

JavaでDate型を使う際、String型に変換したいことがあるでしょう。そんな時にSimpleDateFormatクラスを使えば、指定した書式でString型へと変換できます。逆にString型の日付を、SimpleDateFormatクラスを使えばDate型へと変換することもできます。

JavaでSimpleDateFormatクラスを使った、Date型とString型の変換について興味のある方はぜひご覧ください。

JavaのSimpleDateFormatクラスを使ってDate型とString型を変換する方法


Date型とString型の変換方法を説明する前に、Date型について簡単に説明します。

Date型とはJavaにおいて日付を扱うために用いられる型です。日付の比較や加算など、日付を処理する場面で便利な型ですが、下記のサンプルプログラムを実行してDate型変数をコンソール表示すると、



Mon Jun 14 14:23:24 JST 2021

上記のようにコンソール出力されます。おそらくですが、わかりにくいと感じた方がいるでしょう。一方で、例えば「2021年6月14日 月曜日 14時23分24秒」というようなフォーマットで表示できればわかりやすくなります。

それではSimpleDateFormatクラスを用いた、Date型を指定のフォーマットへと変換する方法を見ていきましょう。

Date型をString型へと変換する方法

Javaで、Date型をString型へ変換する方法を解説します。

下記のサンプルは、Date型で取得した現在の日時を、フォーマットを指定してString型へと変換するソースコードです。



実行結果は次のようにコンソール出力されます。

2021年06月14日月曜日23時37分02秒

SimpleDateFormatクラスのインスタンスを作成する際、変換したいフォーマットを引数に指定します。今回は「yyyy年MM月dd日E曜日k時mm分ss秒」というフォーマットに変換するため、上記ソースコードのように引数へとセットしました。

フォーマットに使われているyやMはパターン文字で、yは年を、Mは月を表しており、下記のパターン文字がよく使われます。
・y ⇒ 年
・M ⇒ 月
・d ⇒ 日
・E ⇒ 曜日
・H ⇒ 時(0-23時)
・h ⇒ 時(1-12時)
・m ⇒ 分
・s ⇒ 秒
・S ⇒ ミリ秒 ※小文字は秒、大文字はミリ秒であることに注意

また、パターン文字の文字数によっても表示が変わります。例えば4月1日を変換する場合では、「MM月dd日」で「04月01日」と、「M月d日」で「4月1日」と変換されます。

そしてフォーマットに日本語を入れる時は、日本語をシングルクォーテーション「’」で囲みましょう。

SimpleDateFormatクラスのインスタンスを生成後、タイムゾーンを設定しました。タイムゾーンとは、時刻をどの地域の標準時で運用するかを定めた設定のことです。

今回は日本の時刻を表示するため、TimeZoneクラスのgetTimeZoneメソッドにて「Asia/Tokyo」を引数に指定しました。

SimpleDateFormatクラスのsetTimeZoneメソッドでタイムゾーンを設定後、formatメソッドでString型へと変換します。

String型をDate型へと変換する方法

続いて、String型の日付をDate型へと変換する方法を解説します。

下記のサンプルは、String型の日時をDate型へと変換するソースコードです。



実行結果は下記のようにコンソール出力されます。

Mon Jun 14 23:37:02 JST 2021

「yyyy年MM月dd日E曜日k時mm分ss秒」というフォーマットのString型を変換しました。そのためSimpleDateFormatクラスのインスタンスを生成する際、引数に「yyyy’年’MM’月’dd’日’Ek’時’mm’分’ss’秒’」と指定しました。

このようにDate型へと変換する場合は、あらかじめフォーマットを指定する必要があります。

インスタンスを生成後、SimpleDateFormatクラスのparseメソッドでDate型へと変換します。日付として誤った値を変換するとParseExceptionの例外エラーを発生してしまうため、変換前にDate型として妥当かチェックを入れたうえで変換しましょう。

SE
JavaのSimpleDateFormatクラスについて理解できました。
PM
SimpleDateFormatクラスを使う場合の参考にしてみてください。

JavaのSimpleDateFormatクラスを使ってみよう!


いかがだったでしょうか。JavaではSimpleDateFormatクラスを使うことで、Date型とString型の変換ができます。

Date型はJavaで日付を扱う際に用いられますが、そのままコンソール表示するとわかりにくい形式で表示されてしまいます。そのためわかりやすく表示する際は、フォーマットを指定して、SimpleDateFormatクラスのformatメソッドで変換しましょう。

また、Date型は日付の比較や加算などをするうえで便利な型です。String型の日付を比較、加算などする場合は、SimpleDateFormatクラスのparseメソッドでDate型へと変換しましょう。

今後、JavaでSimpleDateFormatクラスを使う機会があったらぜひこの記事を参考にしてみてください。


Javaでのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

recommended

Categories

Tags