SimpleDateFormat에서 kk:mm, HH:mm, hh:mm의 뉘앙스 이해
날짜 및 조작을 위해 Java의 SimpleDateFormat을 활용하는 경우 시간이 지나면 "kk:mm", "HH:mm" 및 "hh:mm" 형식 지정자 간의 미묘한 차이를 식별하는 것이 중요합니다. 각 형식을 자세히 살펴보겠습니다.
이 형식은 다음을 나타냅니다. 24시간 형식의 시간으로, 시간 값 범위는 01~24입니다. 예를 들어 01:00은 오전 1시를 나타내고 24:00은 자정을 나타냅니다.
"kk:mm"과 유사하며 "HH:mm"은 24시간 형식의 시간을 나타냅니다. 그러나 허용되는 시간 값의 범위는 00~23입니다. 즉, "24:00" 표현이 없습니다. 대신 자정은 00:00으로 표시됩니다.
이 형식은 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!