【Java入門】日付をフォーマット(Format)する方法を徹底解説
  • facebookページ
  • twitterページ
  • 2019.11.28

    【Java入門】日付をフォーマット(Format)する方法を徹底解説

    日付の書式

    Javaで日付型(Date)の値を画面に出力する場合、フォーマッタを利用して日付を見やすくフォーマットします。

    この記事では、Javaの日付型(Date)の値を、”2019/12/31″や”2019年12月31日”のように見やすくフォーマットする方法と、逆に文字列(String)から日付型(Date)に変換する方法を解説します。

    SimpleDateFormatクラスを使う

    日付(Date)をフォーマットする

    この章では、日付型(Date)の値を、書式指定してフォーマットする方法を解説します、

    早速サンプルコードを見てみましょう。

    Javaで日付をフォーマットする時は、SimpleDateFormatクラスを使用します。次のサンプルコードは、日付型(Date)の年月日の間にスラッシュを入れて、日付をフォーマットしています。

    コードを実行すると、下の実行結果のように、日付がスラッシュ編集された結果が表示されます。

    ▪️ 実行結果

    フォーマットのパターン

    前述したサンプルコードのように、SimpleDateFormatクラスを使用する場合は、コンストラクタの引数に、フォーマットパターンを指定します。

    使用できるフォーマットパターンは、Javaの公式ドキュメントで紹介されていますので、以下のリンクを参照してください。
    SimpleDateFormat

    SimpleDateFormatはスレッドセーフではない

    SimpleDateFormatはスレッドセーフなクラスではないため、同じインスタンスを複数のスレッド間て共有すると、正しい結果にならないことがあり注意が必要です。

    対策として、スレッド毎にインスタンスを毎回生成するか、後述するDateTimeFormatterを使用します。

    ポテパンダの一言メモ

    地域や言語によってフォーマットを切り替えるには、SimpleDateFormatに渡すフォーマットパターンをユーザ毎に切り替えられるようにするか、J2SEの公式ドキュメントで推奨されている、DateFormatクラスのgetTimeInstance()、getDateInstance()、または getDateTimeInstance()メソッドでフォーマッタを取得する方法で対応できます。

    Java8で追加されたDateTimeFormatter

    DateTimeFormatterとは

    DateTimeFormatterクラスは、Java8で追加された日付型(Date)をフォーマットするクラスです。

    早速、DateTimeFormatterクラスを使用して、日付をフォーマットするサンプルコードを見てみましょう。

    上のコードを実行すると、以下のような内容がコンソールに出力されます。

    ▪️ 実行結果

    では、紹介したサンプルコードについて解説します。

    まず、以下の行では、DateTimeFormatter.ofPatternメソッドで、フォーマットパターンを指定してインスタンスを作成しています。

    指定できるフォーマットパターンは、SimpleDateFormatクラスと基本同じですが、詳しくは以下のJavaドキュメントを参照してください。
    DateTimeFormatter

    以下の行では、文字列の日付を、LocalDateTimeのparseメソッドで日付型(LocalDateTime)に変換しています。この時、parseメソッドの第二引数に、フォーマットパターンを指定したDateTimeFormatterクラスのインスタンスを渡しているのがポイントです。

    最後の行では、DateTimeFormatterクラスのformatメソッドを使用して、LocalDateTime型の日付を文字列にフォーマットしています。

    ポテパンダの一言メモ

    LocalDateTimeとは。
    Java8以前までは、の日付型としてDateやCalendarクラスが使われていましたが、Java 8以降は新しくLocalDateTimeやZonedDateTimeクラスを使用することが推奨されています。

    Javaの日付処理をマスターしよう

    Javaの日付をフォーマットする方法や、文字列を日付型に変換する方法を解説してきました。

    日付の処理は、どのようなシステムでも必ず行われると言っても過言ではないほど、よく出てくる処理です。以下の記事も参考にして、Javaの日付処理をマスターしましょう。

    【関連記事】
    【Java】初心者必見!日付を扱うDateクラスの簡単講座

    【Java入門】日付情報を取得出来るCalendarクラスを理解しよう!



    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE