【タイトル】SimpleDateFormat
日時フォーマットの変換をする。
【説明】
SimpleDateFormatクラスは、日付と時刻のフォーマット(書式)を扱うクラスです。
【使用場面】
- 年や月といったデータを処理中で使用したい場合
- ライブラリを使用する際、所定の形式へ変換する必要がある場合
- 日付操作の表示を任意で決めたいとき
Calendar 、Date、Time の日付や数値に代入された、「 日付・時刻形式データを、任意の日付・時刻フォーマットに変換する 」クラスとして重宝します。
【書き方】
まずはこちらを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日