kk和HH在日期格式化java中的区别

我对Java很陌生,并且正在尝试使用24小时格式格式化时间。我遇到了两种格式化小时的方法 - HH和kk:

SimpleDateFormat format1 new SimpleDateFormat("HH:mm");
SimpleDateFormat format2 new SimpleDateFormat("kk:mm");
Date date = new Date();
System.out.println(format1.format(date));
System.out.println(format2.format(date));

这两者都产生了类似11:21的东西。它们之间有什么区别?我错过了什么吗?


答案 1

这两种格式基本上做同样的事情,但它们在处理方式上有所不同。 将格式化为 ,而将格式化为 。一天中的小时数是midnightkkmidnight24:00HH00:00k1-24H0-23

检查java文档总是值得一提的,因为它通常提供非常有用的解释以及使用示例。


答案 2

试试这个看看区别

    SimpleDateFormat format1 =  new SimpleDateFormat("HH:mm");
    SimpleDateFormat format2 = new SimpleDateFormat("kk:mm");
    Date date = new GregorianCalendar(2001, 0, 1, 0, 0 , 0 ).getTime();
    System.out.println(format1.format(date));
    System.out.println(format2.format(date));

输出

00:00
24:00