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して対応しましょう。