Javaのprintf()メソッドで日付・時刻をフォーマットする方法
printf()メソッドは、フォーマット済みの文字列をコンソールに出力するためのメソッドです。第1引数にフォーマット文字列を、第2引数以降に結果の文字列へ埋め込む要素(オブジェクト)を渡します。なお、引数の数がフォーマット文字列内の変換指定子の数より多い場合、余分なオブジェクトは単純に無視されます。
日付や時刻を扱う場合は、変換文字の先頭に「t」を付けます。以下の表は、printf()メソッドで日付を出力する際に使用できる主な変換文字とその説明です。
| 変換文字 | 説明 |
|---|---|
| 'B' | 対応する引数を月の正式名称(例:November)として出力します。 |
| 'b' | 対応する引数を月の省略形(例:Nov)として出力します。 |
| 'h' | 対応する引数を月の省略形として出力します('b'と同じ動作)。 |
| 'A' | 対応する引数を曜日の正式名称(例:Tuesday)として出力します。 |
| 'a' | 対応する引数を曜日の短縮形(例:Tue)として出力します。 |
| 'C' | 対応する引数を世紀部分(4桁の年を100で割った値)として出力します。 |
| 'Y' | 対応する引数を年(4桁の数字)として出力します。 |
| 'y' | 対応する引数を年(2桁の数字)として出力します。 |
| 'j' | 対応する引数を年内の通算日(3桁の数字)として出力します。 |
| 'm' | 対応する引数を月(2桁の数字)として出力します。 |
| 'd' | 対応する引数を日(必要に応じて先頭に0を付けた2桁の数字)として出力します。 |
| 'e' | 対応する引数を日(2桁の数字)として出力します。 |
時刻を表示するための変換文字
時刻を表示したい場合は、以下の変換文字も利用できます。
- %tH … 24時間制の時(00〜23)
- %tI … 12時間制の時(01〜12)
- %tM … 分(00〜59)
- %tS … 秒(00〜60)
- %tp … 午前/午後のマーカー
- %tT … 「HH:MM:SS」形式の時刻
例1:日付をフォーマットする
次の例では、printf()メソッドを使って日付の各要素(日・月・年)を個別にフォーマットして表示しています。
import java.util.Date;
public class Example {
public static void main(String args[]) {
// Dateクラスのインスタンスを生成
Date obj = new Date();
System.out.printf("%tD%n", obj);
System.out.printf("Date: %td%n", obj);
System.out.printf("Month: %tm%n", obj);
System.out.printf("Year: %ty%n", obj);
}
}実行結果
11/10/20 Date: 10 Month: 11 Year: 20
例2:年と通算日をフォーマットする
次の例では、printf()メソッドを使って年(4桁)と年内の通算日を表示しています。
import java.util.Date;
public class Example {
public static void main(String args[]) {
// Dateクラスのインスタンスを生成
Date obj = new Date();
System.out.printf("%tD%n", obj);
System.out.printf("Year: %tY%n", obj);
System.out.printf("Day of the year: %tj%n", obj);
}
}実行結果
11/10/20 Year: 2020 Day of the year: 315
例3:月名と曜日名を出力する
次の例では、printf()メソッドを使って月および曜日の名称(正式名称と省略形)を出力しています。
import java.util.Date;
public class Example {
public static void main(String args[]) {
// Dateクラスのインスタンスを生成
Date obj = new Date();
System.out.printf("Date: %tD%n", obj);
System.out.printf("Month (full): %tB%n", obj);
System.out.printf("Month (abbreviation): %tb%n", obj);
System.out.printf("Day (full): %tA%n", obj);
System.out.printf("Day (abbreviation): %ta%n", obj);
}
}実行結果
Date: 11/10/20 Month (full): November Month (abbreviation): Nov Day (full): Tuesday Day (abbreviation): Tue
なお、実行結果の日付はシステムの現在日時に依存するため、実行するタイミングによって表示内容は変わります。また、月名や曜日の表示言語はロケール設定の影響を受ける点にも注意してください。
-
【Android開発】日付と時刻をフォーマットして表示する方法をわかりやすく解説
はじめに このチュートリアルでは、Androidアプリで日付と時刻をフォーマットして画面に表示する方法を、実際のコード例とともに段階的に解説します。JavaのSimpleDateFormatクラスを使えば、曜日や年月日、時分秒などを自由な形式で表示できます。 手順1:新しいプロジェクトを作成する まず、Android Studioで新しいプロジェクトを作成します。メニューから「File → New Project」を選択し、必要な項目を入力してプロジェクトを作成してください。 手順2:レイアウトファイル(activity_main.xml)を編集する 次に、res/layout/activ
-
JavaのLocalDateTimeクラスでテーブルにローカル日時を設定する方法を解説
Java 8のjava.timeパッケージには、現在のローカル(地域)の日付と時刻を取得するためのLocalDateTimeクラスが用意されています。このクラスを利用すると、日付や時刻の値だけでなく、年間通算日(day-of-year)、曜日(day-of-week)、年内週番号(week-of-year)といった他の日付・時刻フィールドも取得できます。 テーブルのカラムにローカル日時を設定する手順 テーブルのカラムにローカルの日付・時刻値を設定するには、以下の3つのステップを実行します。 ステップ1:LocalDateTimeオブジェクトを取得する 静的メソッドnow()を呼び出すことで、L