为了账号安全,请及时绑定邮箱和手机立即绑定

SimpleDateFormat上的Java HH:mm和hh:mm之间的区别

SimpleDateFormat上的Java HH:mm和hh:mm之间的区别

神不在的星期二 2019-10-11 14:50:20
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 回答

?
慕工程0101907

TA贡献1887条经验 获得超5个赞

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指出的那样))


查看完整回答
反对 回复 2019-10-11
?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

请看这里


HH是一天中的小时(从0到23开始)


hh是上午/下午格式的小时数


kk是一天中的小时(从1到24)


毫米是小时


ss是一分钟内的秒数


查看完整回答
反对 回复 2019-10-11
?
红颜莎娜

TA贡献1842条经验 获得超12个赞

实际上,最后一个并不奇怪。代码设置的是工作时区,而不是工作时区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


查看完整回答
反对 回复 2019-10-11
  • 3 回答
  • 0 关注
  • 2549 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信