Understanding the Differences in SimpleDateFormat Hour Formats: kk:mm, HH:mm, and hh:mm
Various formats exist in SimpleDateFormat to represent time, including kk:mm, HH:mm, and hh:mm. Each format serves a specific purpose.
kk:mm (01-24 hour format):
This format represents time using a 01 to 24-hour clock, with 01 indicating 1:00 AM and 24 indicating midnight. This format is commonly used in military notation and in some European countries.
HH:mm (00-23 hour format):
This format uses a 00 to 23-hour clock, with 00 indicating midnight and 23 indicating 11:00 PM. It's the standard 24-hour format used in most parts of the world.
hh:mm (12-hour format with AM/PM):
This format follows a 12-hour clock, with hh representing hours (01 to 12) and mm representing minutes. AM or PM is used to indicate whether the time is before or after noon.
Example:
The following Java code snippet demonstrates the differences between these formats:
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")); Date epoch = new Date(0); // Represents 1970-01-01 00:00:00 UTC System.out.println(broken.format(epoch)); System.out.println(working.format(epoch)); System.out.println(working2.format(epoch));
Output:
24:00:00 00:00:00 05:30:00
As you can see, "kk:mm" prints the time in military format, "HH:mm" prints in standard 24-hour format, and "hh:mm" prints in 12-hour format with AM/PM notation.
The above is the detailed content of What's the Difference Between 'kk:mm', 'HH:mm', and 'hh:mm' in SimpleDateFormat for Time Representation?. For more information, please follow other related articles on the PHP Chinese website!