ホームページ >Java >&#&チュートリアル >Java の SimpleDateFormat の「kk:mm」、「HH:mm」、および「hh:mm」の違いは何ですか?

Java の SimpleDateFormat の「kk:mm」、「HH:mm」、および「hh:mm」の違いは何ですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-09 12:08:02915ブラウズ

What is the difference between

SimpleDateFormat の kk:mm、HH:mm、hh:mm のニュアンスを理解する

日付と日付を操作するために Java の SimpleDateFormat を利用する場合時には、「kk:mm」の微妙な違いを識別することが重要です。 「HH:mm」および「hh:mm」形式指定子。これらの形式をそれぞれ詳しく見てみましょう:

  • "kk:mm": 24 時間形式 (01-24)

この形式は次のことを表します。 24 時間形式の時刻。時の値の範囲は 01 から 24 です。たとえば、01:00 は を表します。午前 1:00、24:00 は午前 0 時を表します。

  • "HH:mm": 24 時間形式 (00-23)

「kk:mm」と同様に、「HH:mm」は時間を 24 時間形式で表します。ただし、許容される時間の値の範囲は 00 ~ 23 であり、「24:00」の表現はありません。代わりに、真夜中は 00:00 として表されます。

  • "hh:mm": 12 時間形式 (AM/PM で 01-12)

この形式では、AM/PM インジケーター付きの 12 時間制が採用されています。時間の値の範囲は 01 ~ 12 で、01 は午前 1 時を表し、12 は午後 12 時を表します。

これらの違いを説明するには、次の点を考慮してください。コードスニペット:

SimpleDateFormat broken = new SimpleDateFormat("kk:mm:ss");
SimpleDateFormat working = new SimpleDateFormat("HH:mm:ss");
SimpleDateFormat working2 = new SimpleDateFormat("hh:mm:ss");

broken.setTimeZone(TimeZone.getTimeZone("Etc/UTC"));
working.setTimeZone(TimeZone.getTimeZone("Etc/UTC"));

System.out.println(broken.format(epoch));
System.out.println(working.format(epoch));
System.out.println(working2.format(epoch));

出力:

24:00:00
00:00:00
05:30:00

ご覧のとおり、「kk:mm」は値を含む 24 時間形式の時刻を返します。 24:00:00の。 24 時間制には 24:00 の表現がないため、「HH:mm」は時刻を 00:00:00 として正しくフォーマットします。ただし、「hh:mm」では、05:30:00 という予期しない結果が生成されます。これは、「hh:mm」形式で 12 時間制が指定されており、正しい時刻は 00:00 UTC であるため、これに相当する 12 時間表現は 12:00 AM となるためです。ただし、このコードでは「working2」のタイム ゾーンが設定されていないため、デフォルトのシステム タイム ゾーンが使用されます。この場合、システムのタイムゾーンが UTC と一致しない可能性があり、不正確な結果が生じる可能性があります。

以上がJava の SimpleDateFormat の「kk:mm」、「HH:mm」、および「hh:mm」の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。