1. ホーム
  2. java

日付フォーマット後にAMとPMを小文字で表示する

2023-12-05 06:42:03

質問

日時をフォーマットした後、時刻が大文字のAMやPMで表示されますが、amやpmのように小文字で表示したいのですが、どうすればいいですか?

これは私のコードです。

public class Timeis {
    public static void main(String s[]) {
        long ts = 1022895271767L;
        String st = null;  
        st = new SimpleDateFormat(" MMM d 'at' hh:mm a").format(ts);
        System.out.println("time is " + ts);  
    }
}

どのように解決するのですか?

残念ながら、標準的な書式設定方法はそれをさせません。Jodaもそうです。単純なポストフォーマット置換でフォーマットされた日付を処理することになると思います。

String str = oldstr.replace("AM", "am").replace("PM","pm");

を使うことができます。 replaceAll() を使う方法もありますが、おそらく上記で十分だと思います。私は ではなく を行うことはできません。 toLowerCase() を使用することは、将来的に書式文字列を変更して (たとえば) 月名などを含むようにした場合に、書式を台無しにする可能性があるからです。

EDIT James Jithin の解決策 の方がずっと良さそうだし、(コメントにあるように)これを行う適切な方法は