Java
 Computer >> コンピューター >  >> プログラミング >> Java

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の活用も検討してみてください。

  1. 【Android開発】日付と時刻をフォーマットして表示する方法をわかりやすく解説

    はじめに このチュートリアルでは、Androidアプリで日付と時刻をフォーマットして画面に表示する方法を、実際のコード例とともに段階的に解説します。JavaのSimpleDateFormatクラスを使えば、曜日や年月日、時分秒などを自由な形式で表示できます。 手順1:新しいプロジェクトを作成する まず、Android Studioで新しいプロジェクトを作成します。メニューから「File → New Project」を選択し、必要な項目を入力してプロジェクトを作成してください。 手順2:レイアウトファイル(activity_main.xml)を編集する 次に、res/layout/activ

  2. Javaで現在の日付・時刻を取得する3つの方法(LocalDate / LocalTime / LocalDateTime)

    Javaで現在の日付や時刻を取得したいと思ったことはありませんか?このチュートリアルでは、Java 8以降で利用できる3つの異なる方法を、サンプルコードとともにわかりやすく解説します。 日付や時刻の表示に使用する主なクラスは、LocalDate、LocalTime、LocalDateTime の3つです。これらはすべて java.time パッケージに含まれており、従来の Date や Calendar クラスに比べて直感的で扱いやすいのが特徴です。 現在の日付を取得する LocalDate クラスは、タイムゾーン情報を持たない「日付」を表すために使用します。 GetCurrentDate.j