<目次>
(1) Javaで日付を整形する方法について
(1-1) 構文
(1-2) サンプルプログラム
(1) Javaで日付を整形する方法について
日付を扱っていて、例えば「Thu Dec 10 23:07:25 JST 2020」のような日付を「2020/12/10 23:07:25」という形式に変換したい、といったケースはないでしょうか?本記事ではその記述についてご紹介します。
(1-1) 構文
Javaで日付を扱うには「SimpleDateFormat」クラスが利用できます。
(構文)
SimpleDateFormat sdf = new SimpleDateFormat("[整形したい日付フォーマット]");
String format_date1 = sdf1.format([整形対象のDate型インスタンス]);
| パターン | 代表例 | 意味 |
| y | yyyy | 年 |
| M | MM | 月 |
| d | dd | 日 |
| h | hh | 時間(1~12で表示) |
| H | HH | 時間(0~23で表示) |
| m | mm | 分 |
| s | ss | 秒 |
| s | SSS | ミリ秒 |
| E | E | 曜日 |
| D | D | 1年の内のXXX日目(XXX=1~366) |
| a | a | am/pm |
次に、SimpleDateFormatクラスのformatメソッドを使って、先ほど指定したフォーマットに変換する対象のDate型インスタンスを与えて整形を行います。結果はString型で返却されます。
(1-2) サンプルプログラム
以下のサンプルプログラムでは同じDate型の値(orig_date)を4種類のパターンに整形して結果を出力するプログラムです。最低限のルールさえ守れば、出力の型の自由度が非常に高い事が分かります。
(サンプルプログラム)
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class IT0987_DateFormat {
public static void main(String args[]) {
Calendar cal = Calendar.getInstance();
cal.set(2020,Calendar.DECEMBER,10,23,07,25);
Date orig_date = cal.getTime();
System.out.println("# フォーマット前 :"+orig_date);
//# yyyy/MM/dd
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy/MM/dd z");
String format_date1 = sdf1.format(orig_date);
System.out.println("# フォーマット後①:"+format_date1);
//# yyyy-MM-dd a
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd a");
String format_date2 = sdf2.format(orig_date);
System.out.println("# フォーマット後②:"+format_date2);
//# yyyy-MM-dd HH:mm:ssZ
SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ssZ");
String format_date3 = sdf3.format(orig_date);
System.out.println("# フォーマット後③:"+format_date3);
//# yyyy-MM-dd E
SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd E");
String format_date4 = sdf4.format(orig_date);
System.out.println("# フォーマット後④:"+format_date4);
}
}
(図121)
