当前位置:   article > 正文

Java获取当天(今日)零点时间(00:00:00)0时0分0秒的方法_java获取当天零点时间

java获取当天零点时间

如果想通过Java获取当天的0点时间,有两种方式:一种是通过Calendar;另外一种是通过SimpleDataFormat。下面分别介绍。

1.Calendar

通过Calendar把时分秒字段清空,那么就是当天的0点0分0秒了。

  1. Calendar calendar = Calendar.getInstance();
  2. calendar.set(Calendar.SECOND, 0);
  3. calendar.set(Calendar.MINUTE, 0);
  4. calendar.set(Calendar.HOUR_OF_DAY, 0);
  5. calendar.set(Calendar.MILLISECOND, 0);
  6. long todayZero = calendar.getTimeInMillis();

 

2.SimpleDataFormat

通过日期格式进行日期的格式化,只保留年月日,也能得到当天的0点时间。

  1. SimpleDateFormat dayFormat = new SimpleDateFormat("yyyyMMdd");
  2. long todayZero = dayFormat.parse(dayFormat.format(new Date())).getTime();

 

3.性能测试。

 测试代码如下所示,各执行100万次,Calendar耗时450ms,  SimpleDataFormat耗时2000ms。可以看到Calendar的性能好一些。

  1. try {
  2. long start1 = System.currentTimeMillis();
  3. for (int i = 0; i < 1000000; i++) {
  4. Calendar calendar = Calendar.getInstance();
  5. calendar.set(Calendar.SECOND, 0);
  6. calendar.set(Calendar.MINUTE, 0);
  7. calendar.set(Calendar.HOUR_OF_DAY, 0);
  8. calendar.set(Calendar.MILLISECOND, 0);
  9. long todayZero = calendar.getTimeInMillis();
  10. }
  11. logger.info("Calendar elapse={}", System.currentTimeMillis() - start1);
  12. //17:53:29.451 [main] INFO com.autonavi.render.smartmap.WeatherTest - Calendar elapse=451
  13. long start2 = System.currentTimeMillis();
  14. for (int i = 0; i < 1000000; i++) {
  15. SimpleDateFormat dayFormat = new SimpleDateFormat("yyyyMMdd");
  16. long todayZero = dayFormat.parse(dayFormat.format(new Date())).getTime();
  17. }
  18. logger.info("SimpleDateFormat elapse={}", System.currentTimeMillis() - start2);
  19. //17:53:31.482 [main] INFO com.autonavi.render.smartmap.WeatherTest - SimpleDateFormat elapse=2027
  20. } catch (Exception e) {
  21. logger.error("errorMessage={}", e.getMessage(), e);
  22. }

 

4.结论

Calendar 的性能要比 SimpleDataFormat好,建议使用Calendar。

另外,如果想要获取第二天零点的时间,直接 todayZero + 86400000 就可以了。

 

PS:写这篇文章主要是有个哥们儿的文章误导人,使用TimeZone.getDefault().getRawOffset()害人不浅,还不改,气死我了。鄙视他(https://www.cnblogs.com/cc-java/p/6699045.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/292426
推荐阅读
相关标签
  

闽ICP备14008679号