关于JAVA中Date取值的问题,希望找一个很便捷的方法;

问题:通过当前时间的分钟数,得到该分钟数所在的10分钟范围;

如:

当前时间:2019-08-15 11:34:23

我需要得到该时间所处的10分钟范围

(10分钟时整点时间,2019-08-15 11:39:23的时候,我取得还是下面这个)

开始:2019-08-15 11:30:00

结束:2019-08-15 11:40:00

        Calendar cal = Calendar.getInstance();
        cal.setTime(new Date());
        int minute = cal.get(Calendar.MINUTE)/10 * 10;
        cal.set(Calendar.MINUTE, minute);
        cal.set(Calendar.SECOND, 0);
        Date begin = cal.getTime();
        cal.add(Calendar.MINUTE, 10);
        Date end = cal.getTime();

可以从时间戳入手,将当前时间戳与10*60*1000分别向下、向上取整,然后在乘以10*60*1000即可得到你想要的

3种方法

1.直接截取字符串获取分钟,然后分钟加减,例如36,取十位就是3,用3来加减1,小于0就小时减一,大于6就小时+1
2.用时间戳,分钟取整,分钟后面都写0,然后再加10*60*1000
3.用Calendar 加减分钟

    public static void main(String[] args) {
        long curr_time  = System.currentTimeMillis();
        long div = 600000;

        long aa1 = ( curr_time ) / div * div;
        long aa2 = ( curr_time + div ) / div * div;
        Date date1 = new Date(aa1);
        Date date2 = new Date(aa2);

        System.out.println(date1);
        System.out.println(date2);
    }

运行:
Thu Aug 15 19:10:00 EDT 2019
Thu Aug 15 19:20:00 EDT 2019