直接看下面的代码:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d1 = sdf.parse("9999-12-31 00:00:00");
System.out.println(sdf.format(d1));
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
System.out.println(sdf1.format(d1));
程序输出结果如下:
9999-12-31 00:00:00
9999-12-31 12:00:00
可以看到,通过yyyy-MM-dd hh:mm:ss样式format出来的日期是12小时制,而HH:mm:ss则是24小时制!!
下面是原因:
/**
SimpleDateFormat函数语法:
G 年代标志符
y 年
M 月
d 日
h 时 在上午或下午 (1~12)
H 时 在一天中 (0~23)
m 分
s 秒
S 毫秒
E 星期
D 一年中的第几天
F 一月中第几个星期几
w 一年中第几个星期
W 一月中第几个星期
a 上午 / 下午 标记符
k 时 在一天中 (1~24)
K 时 在上午或下午 (0~11)
z 时区
*/
注意:
h代表的时间范围是1-12,H代表的范围为0-23