Javaで時刻をAM/PM形式にフォーマットする方法をわかりやすく解説
本記事では、Javaを使って時刻をAM/PM形式(12時間表記)にフォーマットする方法を解説します。フォーマット文字列とは、日付・時刻の値を文字列として読み書きする際の形式(フラットファイルへの保存や人間が読みやすい出力など)を定義するためのものです。
それでは、具体的な手順を見ていきましょう。
入力例:
現在の日付: Thu Mar 17 16:04:31 IST 2022
期待される出力:
AM/PM形式の現在時刻 : 04.04 pm
アルゴリズム
ステップ1 - 処理を開始する ステップ2 - 現在の日付と時刻を取得するDateオブジェクト(current_date)を宣言する ステップ3 - 値を定義する ステップ4 - SimpleDateFormatクラスのオブジェクト「formatTime」を宣言する ステップ5 - .format(current_date)メソッドを使って、指定した形式で時刻をフォーマットする ステップ6 - 結果を表示する ステップ7 - 処理を終了する
例1:mainメソッド内で直接フォーマットする
まずは、必要なパッケージをインポートし、mainメソッドの中で直接時刻をフォーマットする基本的な例です。
import java.util.Date;
import java.text.SimpleDateFormat;
public class Demo {
public static void main(String[] args) {
System.out.println("The required packages have been imported");
Date current_date = new Date();
System.out.println("The current date is: " + current_date);
SimpleDateFormat formatTime = new SimpleDateFormat("hh.mm aa");
String result_time = formatTime.format(current_date);
System.out.println("\nThe current Time in AM/PM format is : " + result_time);
}
}
出力
The required packages have been imported The current date is: Thu Mar 17 16:04:31 IST 2022 The current Time in AM/PM format is : 04.04 pm
例2:関数に切り分けてフォーマットする
次に、時刻のフォーマット処理を独立した関数として定義する例です。処理を関数化することで、コードの再利用性と可読性が向上します。
import java.util.Date;
import java.text.SimpleDateFormat;
public class Demo {
static void format_time(Date current_date){
SimpleDateFormat formatTime = new SimpleDateFormat("hh.mm aa");
String result_time = formatTime.format( current_date);
System.out.println("\nThe current Time in AM/PM format is : " + result_time);
}
public static void main(String[] args) {
System.out.println("The required packages have been imported");
Date current_date = new Date();
System.out.println("The current date is: " + current_date);
format_time(current_date);
}
}
出力
The required packages have been imported The current date is: Thu Mar 17 16:04:31 IST 2022 The current Time in AM/PM format is : 04.04 pm
フォーマットパターン文字の意味
サンプルコードで使用した "hh.mm aa" の各パターン文字は、次のような意味を持ちます。
- hh:12時間制の時刻(01〜12)
- mm:分(00〜59)
- aa:午前/午後のマーカー(AM/PM)
これらを組み合わせることで、「04.04 pm」のようにドット区切りの12時間表記を実現できます。区切り文字を「:」に変更したい場合は、"hh:mm aa" と指定してください。
補足:Java 8以降ならjava.time APIがおすすめ
SimpleDateFormatはスレッドセーフではないため、Java 8以降ではjava.timeパッケージのDateTimeFormatterを使うことが推奨されています。
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
public class ModernDemo {
public static void main(String[] args) {
LocalTime now = LocalTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("hh.mm a");
System.out.println("AM/PM形式の現在時刻 : " + now.format(formatter));
}
}
DateTimeFormatterはイミュータブル(不変)かつスレッドセーフなので、マルチスレッド環境でも安全に利用できます。
まとめ
Javaで時刻をAM/PM形式にフォーマットするには、SimpleDateFormatクラスに"hh.mm aa"などのパターンを指定し、format()メソッドを呼び出すだけで簡単に実装できます。新しいプロジェクトでは、スレッドセーフなjava.time APIの活用も検討してみてください。
-
【Android開発】日付と時刻をフォーマットして表示する方法をわかりやすく解説
はじめに このチュートリアルでは、Androidアプリで日付と時刻をフォーマットして画面に表示する方法を、実際のコード例とともに段階的に解説します。JavaのSimpleDateFormatクラスを使えば、曜日や年月日、時分秒などを自由な形式で表示できます。 手順1:新しいプロジェクトを作成する まず、Android Studioで新しいプロジェクトを作成します。メニューから「File → New Project」を選択し、必要な項目を入力してプロジェクトを作成してください。 手順2:レイアウトファイル(activity_main.xml)を編集する 次に、res/layout/activ
-
Javaで現在の日付・時刻を取得する3つの方法(LocalDate / LocalTime / LocalDateTime)
Javaで現在の日付や時刻を取得したいと思ったことはありませんか?このチュートリアルでは、Java 8以降で利用できる3つの異なる方法を、サンプルコードとともにわかりやすく解説します。 日付や時刻の表示に使用する主なクラスは、LocalDate、LocalTime、LocalDateTime の3つです。これらはすべて java.time パッケージに含まれており、従来の Date や Calendar クラスに比べて直感的で扱いやすいのが特徴です。 現在の日付を取得する LocalDate クラスは、タイムゾーン情報を持たない「日付」を表すために使用します。 GetCurrentDate.j