kk:mm,HH:mm和hh:mm格式有何区别? 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:0000:00:0005:30:00
3 回答

素胚勾勒不出你
TA贡献1827条经验 获得超9个赞
kk:(01-24)看起来像01,02..24。
HH:(00-23)看起来像00,01..23。
hh:(AM / PM中的01-12)看起来像01,02..12。
因此最后一个打印输出(working2)有点奇怪。它应该说12:00:00(编辑:如果您正在设置working2时区和格式,那不是(如kdagli指出的那样))

大话西游666
TA贡献1817条经验 获得超14个赞
实际上,最后一个并不奇怪。代码设置的是工作时区,而不是工作时区2。
SimpleDateFormat working2 = new SimpleDateFormat("hh:mm:ss"); 工作中.setTimeZone(TimeZone.getTimeZone("Etc/UTC"));
kk从1到24,HH从0到23,hh从1到12(AM / PM)。
修复此错误可以得到:
24:00:00
00:00:00
01:00:00
添加回答
举报
0/150
提交
取消