java如何获取当前时间到第二天凌晨的秒数
2018-03-07 18:40
387 查看
java如何获取当前时间到第二天凌晨的秒数
原因:前两天写了一个接口,redis缓存有效时间设置到第二天的凌晨中遇到一个坑,这里记录一下。坑在这里
public Long getSecondsNextEarlyMorning() { Calendar cal = Calendar.getInstance(); cal.add(Calendar.DAY_OF_YEAR, 1); // 坑就在这里 cal.set(Calendar.HOUR, 0); cal.set(Calendar.SECOND, 0); cal.set(Calendar.MINUTE, 0); cal.set(Calendar.MILLISECOND, 0); Long seconds = (cal.getTimeInMillis() - System.currentTimeMillis()) / 1000; return seconds.longValue(); }
上面的代码中,如果当前时间超过中午12:00,则返回的结果是当前时间到第二天中午12:00的秒数;
如果当前时间不超过中午12:00,则返回的结果是到第二天凌晨的秒数,也就是我想要的结果。
解决方案
public Long getSecondsNextEarlyMorning() { Calendar cal = Calendar.getInstance(); cal.add(Calendar.DAY_OF_YEAR, 1); // 改成这样就好了 cal.set(Calendar.HOUR_OF_DAY, 0); cal.set(Calendar.SECOND, 0); cal.set(Calendar.MINUTE, 0); cal.set(Calendar.MILLISECOND, 0); Long seconds = (cal.getTimeInMillis() - System.currentTimeMillis()) / 1000; return seconds.longValue(); }
这样无论当前时间是否超过中午12:00,获取的都是到第二天凌晨的秒数。
其中JDK文档是这样解释的:
Calendar.HOUR:get 和 set 的字段数字,指示上午或下午的小时。
Calendar.HOUR_OF_DAY :get 和 set 的字段数字,指示一天中的小时。
相关文章推荐
- android开发之java代码中如何获取到当前时间。详情代码带注释。
- [置顶] android开发之java代码中如何获取到当前时间。详情代码带注释。
- android开发之java代码中如何获取到当前时间。详情代码带注释。
- java如何获取当前时间
- java的Calendar类如何获取当前时间的时分秒以及毫秒。
- 如何解决java.util.Date 获取的不是当前时间
- java如何获取当前时间的方法汇总
- java 如何获取服务器当前时间
- java 把string数据转换成date数据存入mysql的问题,如何获取当前时间date存入数据库
- java中获取当前系统时间,日期并格式化输出
- JAVA: 如何显示比当前DATE时间,提前一个月的时间
- java获取当前时间
- 如何利用java得到当前的时间和前一天的时间
- Java 获取当前系统时间 格式:yyyy-MM-dd HH:mm:ss
- VC中如何获取当前时间
- java获取当前时间(转载)
- JAVA获取系统当前时间
- 如何利用java得到当前的时间和前一天的时间
- 在java中获取当前系统时间 插入数据库中的时间值没有时间只有日期的原因
- java中获取当前系统时间,日期并格式化输出