java获取某时、当日0点等时间点的极优获取方式

来源:互联网 发布:平板电脑安装ubuntu 编辑:程序博客网 时间:2024/06/06 13:16

最近项目中需要统计一些时间段的数据,之前做过一些内部系统有用到这些,但是那时候并不需要考虑系统的响应效率,这次的项目是个公共平台,就不得不考虑了;

以下我拿获取当日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/(1000*3600*24)*(1000*3600*24) - TimeZone.getDefault().getRawOffset();

测试截图如下: