java Calendar 设置hour应该注意24小时制还是12小时制

  • 2018-09-05
  • 浏览 (8,264)

java Calendar 设置hour应该注意24小时制还是12小时制,Calendar.HOUR_OF_DAY 是24小时的,Calendar.HOUR 是12小时制的。下面是获取当天0时的代码:
Calendar calendar = Calendar.getInstance();
// 时
calendar.set(Calendar.HOUR_OF_DAY, 0);
// 分
calendar.set(Calendar.MINUTE, 0);
// 秒
calendar.set(Calendar.SECOND, 0);
// 毫秒
calendar.set(Calendar.MILLISECOND, 0);
Date time = calendar.getTime();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
String format = df.format(time);
System.out.println(format);

打印结果:
2018-09-05 00:00:00.000

这段代码设置hour用的是calendar.set(Calendar.HOUR_OF_DAY, 0)

如果用calendar.set(Calendar.HOUR, 0);设置hour会有不同的结果:
1、如果当前是上午,那么打印结果是:
2018-09-05 00:00:00.000
2、如果当前是下午,那么打印结果是:
2018-09-05 12:00:00.000

这不是我们想要的结果。所以建议使用Calendar.HOUR_OF_DAY作为参数去设置HOUR。

另外Calendar设置上下午的方法:
calendar.set(Calendar.AM_PM, Calendar.AM);
正文到此结束