Javaエンジニア・プログラマ向けの技術情報・業界ニュースをお届けします。

  1. FEnetJava
  2. Javaコラム
  3. Java TIPS
  4. JavaのSimpleDateFormatクラスとは?Date型とString型の変換方法を解説

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

  • Java TIPS
公開日時:   更新日時:
JavaのSimpleDateFormatクラスとは?Date型とString型の変換方法を解説
この記事でわかること
    システム
    エンジニア
    JavaのSimpleDateFormatクラスはどのようなことができるのでしょうか。
    プロジェクト
    マネージャー
    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型として妥当かチェックを入れたうえで変換しましょう。

    システム
    エンジニア
    JavaのSimpleDateFormatクラスについて理解できました。
    プロジェクト
    マネージャー
    SimpleDateFormatクラスを使う場合の参考にしてみてください。

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


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

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

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

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

    FEnetJava・Javaコラムは株式会社オープンアップシステムが運営しています。
    株式会社オープンアップシステムロゴ

    株式会社オープンアップシステムはこんな会社です

    秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。

    • 充実した研修制度

      充実した研修制度

      毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。

    • 資格取得を応援

      資格取得を応援

      スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      オープンアップシステムは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    株式会社オープンアップシステムに興味を持った方へ

    株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。

    株式会社オープンアップシステムへのご応募はこちら↓
    株式会社オープンアップシステムへのご応募はこちら↓

    Java新着案件New Job