Date型で日付を扱っていると
「Sat Oct 29 00:30:00 JST 2022」
このように日本人からすると読みにくい
フォーマットになっています。
なじみのある
「2022年10月29日0時30分」のような
フォーマットに変換する方法を解説します。
SimpleDateFormatクラスを利用する
JavaのDateオブジェクトをStringに変換するには、SimpleDateFormatを使用することができます。SimpleDateFormatは、指定した書式で日付をフォーマットしたり、解析したりするためのクラスです。指定した形式で日付情報を表示できます。
書式文字列(一部)
以下を組み合わせることで任意のパターンで取得できます。
| 文字 | 意味 |
|---|---|
| y | 年 |
| M | 月 |
| d | 日 |
| E | 曜日 |
| a/p | 午前/午後 |
| H | 時(0 ~ 23) |
| K | 時(0 ~ 11) |
| m | 分 |
| s | 秒 |
実際のコード
Dateオブジェクトをyyyy/MM/dd形式の文字列に変換するには、次のようにします。
import java.text.SimpleDateFormat;
import java.util.Date;
public class Main {
public static void main(String args[]) {
Date dt = new Date();
SimpleDateFormat sf =
new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
String str = sf.format(dt);
System.out.println(str);
}
}
実行結果
2022/10/29 02:36:13
実行結果から指定したフォーマット通りに出力されていることが確認できます。
StringをDateに変換する方法
特定の日時時点をDate型に変換する方法を紹介します。
import java.text.SimpleDateFormat;
import java.util.Date;
import java.text.ParseException;
public class Main {
public static void main(String args[]) throws ParseException {
SimpleDateFormat sf =
new SimpleDateFormat("yyyy年MM月dd日");
String birthday = "1991年12月31日"
Date birthDate = sf.parse(birthday);
}
}
Calendar⇔Stringの変換はこちら
parse()を行う際にParseExceptionが促されるので
try-catchで囲む。もしくはthrowsして対応しましょう。

