>Java >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시를 나타내고 24:00은 자정을 나타냅니다.

  • "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이기 때문입니다. 그러나 코드는 "working2"에 대한 표준 시간대를 설정하지 않으므로 기본 시스템 표준 시간대가 사용됩니다. 이 경우 시스템 시간대가 UTC와 맞지 않아 잘못된 결과가 나올 수 있습니다.

위 내용은 Java의 SimpleDateFormat에서 'kk:mm', 'HH:mm' 및 'hh:mm'의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.