Calendar.HOUR和Calendar.HOUR_OF_DAY
- 背景:需要判断某个时间段(该时间段不会跨天)是否在当天,于是用到Calender获取当天的开始和结束时间。
错误使用如下:
Calendar todayStart = Calendar.getInstance();
todayStart.set(Calendar.HOUR, 0); // 此处错误
todayStart.set(Calendar.MINUTE, 0);
todayStart.set(Calendar.SECOND, 0);
todayStart.set(Calendar.MILLISECOND, 0);
Long todayStart = todayStart.getTimeInMillis();
Calendar todayEnd = Calendar.getInstance();
todayEnd.set(Calendar.HOUR, 23); // 此处错误
todayEnd.set(Calendar.MINUTE, 59);
todayEnd.set(Calendar.SECOND, 59);
todayEnd.set(Calendar.MILLISECOND, 999);
Long todayEnd = todayEnd.getTimeInMillis();
在当天0-12点获取到的时间戳和转出得时间如下,可以看到没有问题。
而从12点到24点之间使用上述代码获取到的时间戳和转出得到的时间如下,可以看到下午运行得到的是当天12点到