最近项目中需要统计一些时间段的数据,之前做过一些内部系统有用到这些,但是那时候并不需要考虑系统的响应效率,这次的项目是个公共平台,就不得不考虑了;
以下我拿获取当日0点举例,其他的举一反三即可,如有需要也可留言:
这一段是我以前用的,好像也是大多数人用的:
Calendar todayStart = Calendar.getInstance();
todayStart.set(Calendar.HOUR_OF_DAY, 0);
todayStart.set(Calendar.MINUTE, 0);
todayStart.set(Calendar.SECOND, 0);
todayStart.set(Calendar.MILLISECOND, 0);
long datequantum=todayStart.getTime().getTime();
以上代码段获取所耗费时间大概在10-15毫秒,
今天使用了其他方案,以下这种耗费时间近乎0毫秒,特分享出来:
long current = System.currentTimeMillis();
long zero = current-(current+TimeZone.getDefault().getRawOffset())%(1000*3600*24);