用到这个还是在实时数据库的报表中见到的
本来的想法把时间段内的时间戳/3600000模为0的tag取出来就好了
但一秒一个值遍历的是真慢,就用到了Calendar类的时间计算
这里就回顾下用法吧。
时间获取
// 使用默认时区和语言环境获得一个日历
Calendar cal = Calendar.getInstance();
//获取年
int year = cal.get(Calendar.YEAR);
//获取月,注意月份的索引是从0开始的
int month = cal.get(Calendar.MONTH)+1;
//获取日
int day=cal.get(Calendar.DAY_OF_MONTH);
//时
int hour=cal.get(Calendar.HOUR_OF_DAY);
//分
int minute=cal.get(Calendar.MINUTE);
//秒
int second=cal.get(Calendar.SECOND);
时间设置
// 使用默认时区和语言环境获得一个日历
Calendar cal = Calendar.getInstance();
//设置2000-1-13 5:20:00
cal.set(Calendar.YEAR,2000);
cal.set(Calendar.MONTH,0);
cal.set(Calendar.DAY_OF_MONTH,13);
cal.set(Calendar.HOUR,5);
cal.set(Calendar.MINUTE,20);
cal.set(Calendar.SECOND,0);
// 使用默认时区和语言环境获得一个日历
Calendar cal = Calendar.getInstance();
//设置2000-1-13 5:20:00
cal.set(2000,0,13,5,20,0);
时间计算
// 使用默认时区和语言环境获得一个日历
Calendar cal = Calendar.getInstance();
//设置2000-1-13 5:20:00
cal.set(2000,0,13,5,20,0);
cal.add(Calendar.SECOND,60);
System.out.println(cal.getTime());
Thu Jan 13 05:21:00 GMT+08:00 2000
会自动进入下一分钟