【タイトル】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日