LoginSignup
11
15

More than 3 years have passed since last update.

【Java】SimpleDateFormat (日時の文字列操作)

Last updated at Posted at 2020-11-29

【タイトル】SimpleDateFormat

日時フォーマットの変換をする。

【説明】

SimpleDateFormatクラスは、日付と時刻のフォーマット(書式)を扱うクラスです。

【使用場面】

  • 年や月といったデータを処理中で使用したい場合
  • ライブラリを使用する際、所定の形式へ変換する必要がある場合
  • 日付操作の表示を任意で決めたいとき

CalendarDateTime の日付や数値に代入された、「 日付・時刻形式データを、任意の日付・時刻フォーマットに変換する 」クラスとして重宝します。

【書き方】

まずはこちらをJavaファイルの上部のパッケージ宣言の後に記述してインポートします。

import java.text.SimpleDateFormat;

宣言後、下記の形式でフォーマットを指定します。(書式とパターンは後述)

SimpleDateFormat オブジェクト名 = new SimpleDateFormat(”フォーマットパターン”)

こちらは SimpleDateFormat で使用する 書式パターン をまとめたものになります。
こちらのアルファベットを用いてフォーマットを作成していきます。

書式 概要 パターン 表示
G 紀元 G AD
y year, 年 yyyy
yyy
2020
20
M Month, 月 MM
MMM
MMMM
03
Mar
March
d day, 日 d
dd
1
01
H 時(0-23) H
HH
0
00
K 午前/午後の時(0-11) K
KK
0
00
h 午前/午後の時(1-12) h
hh
1
01
m m
mm
0
00
s s
ss
0
00
S ミリ秒 S
SSS
1
001
z タイムゾーン z Pacific Standard Time, PDT, GMT-08:00
Z タイムゾーン Z -0800

java.text.SimpleDateFormatクラスのメソッド

SimpleDateFormat を使用する時に扱うメソッドの紹介です。

【説明】

SimpleDateFormat のメソッドの一例です。

  • setTimeZone (タイムゾーンを設定)
  • format (指定されたDateを日付文字列にフォーマットする)
  • parse (文字列から解析してDateオブジェクトを生成)

その中でも特に重要な formatメソッドについて少し触れます。

formatメソッド

指定されたDateを日付文字列にフォーマットするメソッド

【説明】

SimpleDateFormat を扱う上で最もメインとなる、「日時を設定したフォーマットの文字列へ変換するメソッドです。

【書き方】

SimpleDateFormatのオブジェクト名.format(日時を格納した変数名)

出力するときなどはこのような使い方です、

System.out.println(sdf.format(date));

【サンプルコード】

// ① ここで SimpleDateFormat と Dateをインポート
import java.text.SimpleDateFormat;
import java.util.Date;

public class MainSimpleDateFormat {

    public static void main(String[] args) {

        // ② 現在時刻を取得してくる値を 変数 date に格納
        Date date = new Date();
        // SimpleDateFormat をオブジェクト化し、任意のフォーマットを設定
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年 MM月 dd日");
        // フォーマット指定なし
        System.out.println(date);
        // フォーマット指定あり
        System.out.println(sdf.format(date));
    }
}

【実行結果】

Sun Nov 29 20:11:31 JST 2020
2020年 11月 29日

【サンプルコード】 現在日付をyyyyMMdd形式の文字列で取得する

現在日付をyyyyMMdd形式で取得するサンプルです。

// ① ここでSimpleDateFormat と Calendarをインポート
import java.text.SimpleDateFormat;
import java.util.Calendar;

public class MainSimpleDateFormat {

    public static void main(String[] args) {

        // ② Calendarをオブジェクト化
        Calendar cl = Calendar.getInstance();

        // ③ SimpleDateFormat のパターンを任意で設定する。
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年 MM月 dd日");
        // ④ 文字列 str に SimpleDateFormat で整形した 日時 を格納する。
        String str = sdf.format(cl.getTime());
        // ⑤strを出力する
        System.out.println(str);
    }
}

【実行結果】

2020年 11月 29日

【まとめ】

参考文献・記事

11
15
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
15