ホームページ  >  記事  >  Java  >  Java の SimpleDateFormat の kk:mm、HH:mm、および hh:mm の違いは何ですか?

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

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-09 18:45:02289ブラウズ

What are the differences between kk:mm, HH:mm, and hh:mm in Java's SimpleDateFormat?

時刻形式の単純化: SimpleDateFormat における kk:mm と HH:mm と hh:mm を理解する

このプログラミングの調査では、次のことを行います。 Java の SimpleDateFormat クラスでよく使用される 3 つの時刻形式 (kk:mm、HH:mm、および hh:mm) の微妙な違いを調べます。

形式のバリエーション:

  • kk:mm: 24 時間形式、時間の範囲は 01 から 24 です。
  • HH:mm: 24 時間形式、時間の範囲は 00 から 24 です。 23.
  • hh:mm: 12 時間形式、時間の範囲は 01 から 12、AM/PM インジケーター付き。

直感と実装:

これらの違いを示すために、次のコード スニペットを考えてみましょう:

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"));
working2.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: 午前 0 時を 00:00 として、24:00:00 を表示します。
  • HH:mm: 午前 0 時を 00:00 として正しく表す 00:00:00 を表示します。
  • hh:mm: 指定された UTC タイムゾーンにもかかわらず、予期せず 05:30:00 が表示されます (これは結果として表示されるはずです)

この異常は、タイム ゾーンが作業用に明示的に設定されていないために発生します2。デフォルトでは、SimpleDateFormat はローカル タイム ゾーンを想定しており、意図した UTC 形式と一致しない可能性があります。

結論:

kk:mm、HH のニュアンスを理解する: SimpleDateFormat の mm、および hh:mm 形式は、時刻を正確にフォーマットするために重要です。適切な形式を慎重に選択し、タイムゾーンが適切に構成されていることを確認することで、開発者は希望する方法で時間を効果的に表現できます。

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

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