JavaのSimpleDateFormatのformatメソッドの使い方を完全ガイド!初心者でもわかる日付フォーマット
生徒
「Javaで日付を見やすい形式に変換する方法ってあるんですか?」
先生
「はい、Javaのjava.textパッケージに含まれるSimpleDateFormatクラスを使えば、formatメソッドで日付を自由な文字列に整形できます。」
生徒
「例えば年月日や時刻を自分の好きな形で出力できるんですね?」
先生
「その通りです。では、基本から順番に見ていきましょう。」
1. java.textパッケージとは?
Javaのjava.textパッケージは、文字列の解析や整形を行うための便利なクラスが揃っています。特に日付や数値を読みやすい形に変換する際によく利用されます。初心者がJavaで日付処理を学ぶとき、このパッケージは欠かせません。
2. SimpleDateFormatクラスの役割
SimpleDateFormatクラスは、Date型のオブジェクトを指定したパターンで文字列に変換したり、逆に文字列を日付として解釈したりできるクラスです。特にformatメソッドは、日付を人間にとって読みやすい形に整えるための中心的なメソッドです。
3. formatメソッドの基本的な使い方
ここでは現在の日付を「年/月/日」の形式に変換するサンプルコードを紹介します。
import java.text.SimpleDateFormat;
import java.util.Date;
public class FormatExample {
public static void main(String[] args) {
Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
String result = sdf.format(now);
System.out.println(result);
}
}
2025/09/24
このようにformatメソッドを使えば、簡単に日付を文字列に整形できます。
4. よく使うフォーマットパターン一覧
指定できるフォーマットパターンには以下のような種類があります。
- yyyy:西暦(例:2025)
- MM:月(例:09)
- dd:日(例:24)
- HH:24時間表記の時(例:14)
- mm:分(例:05)
- ss:秒(例:59)
- E:曜日(例:水)
- z:タイムゾーン(例:JST)
これらを組み合わせることで自由に日付の表示形式をカスタマイズできます。
5. 応用例:日時と曜日を含めた整形
次は年月日、時刻、曜日を含めた出力例です。
import java.text.SimpleDateFormat;
import java.util.Date;
public class FormatAdvanced {
public static void main(String[] args) {
Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH時mm分ss秒 (E) z");
String result = sdf.format(now);
System.out.println(result);
}
}
2025年09月24日 14時05分59秒 (水) JST
日本語を含めて整形することで、ユーザーにわかりやすい表示が可能です。
6. formatメソッドを使う際の注意点
SimpleDateFormatはスレッドセーフではありません。複数のスレッドから同じインスタンスを扱うと予期せぬ結果が出る可能性があります。マルチスレッド環境ではスレッドごとにインスタンスを作成するか、Java8以降で提供されているDateTimeFormatterを利用する方が安全です。
7. formatメソッドの実務での活用
実務ではログにタイムスタンプを残したり、画面に読みやすい日付を表示したりする場面が多くあります。システム開発やWebアプリケーションでも、formatメソッドの知識があると確実に役立ちます。初心者の段階で習得しておくと応用の幅が広がります。
8. DateTimeFormatterとの違い
Java8以降ではjava.timeパッケージが導入され、DateTimeFormatterが推奨されています。こちらはスレッドセーフでより直感的に使えます。ただし既存のシステムでは今もSimpleDateFormatが多く利用されているため、両方を理解しておくことが大切です。