SimpleDateFormat の時間書式指定子
SimpleDateFormat を使用して時刻値を書式設定する場合、時間書式指定子 kk の違いを理解することが重要です。 mm、HH:mm、およびhh:mm.
kk:mm
kk 指定子は、01 から 24 までの 24 時間スケールで時間を表します。たとえば、24:00: 00は、
HH:mm
kk とは異なり、HH は 00 から 23 までの 24 時間スケールで時間を指定します。00:00:00 は、時間を表します。
hh:mm
hh 指定子は、AM/PM と組み合わせて 01 から 12 を使用して、時間を 12 時間スケールで表示します。したがって、午前 12:00:00 または午後 12:00:00 は正午を表します。
次の Java コードを考えてみましょう:
SimpleDateFormat broken = new SimpleDateFormat("kk:mm:ss"); broken.setTimeZone(TimeZone.getTimeZone("Etc/UTC")); SimpleDateFormat working = new SimpleDateFormat("HH:mm:ss"); working.setTimeZone(TimeZone.getTimeZone("Etc/UTC")); SimpleDateFormat working2 = new SimpleDateFormat("hh:mm:ss"); 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
working2 の出力に矛盾があるのは、コードが working2 のタイムゾーンを設定するが、そのタイムゾーンは設定しないためです。形式。その結果、本来は 12:00:00 AM と出力されるべきところ、05:30:00 AM または PM が誤って表示されます。
以上がSimpleDateFormat の 'kk:mm'、'HH:mm'、および 'hh:mm' の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。