1. calendar类可以实现获得某一天的前几天,后几天的日期,可以使用calendar.add方法
// 获取系统当前时间
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH-mm-ss")
Calendar now = Calendar.getInstance();
String res = sdf.format(now.getTime());
System.out.println(res); // 2018-07-04 11:50:37
//指定某一天为当前标准
Calendar calendar=new GregorianCalendar();
calendar.setTime(date);//date为指定的日期。
//获取当前标准日期之后第7天的日期
calendar.add(calendar.DATE,7);
//获取当前标准日期的前一天的日期
calendar.add(calendar.DATE,-1);
Calendar calendar = Calendar.getInstance();
calendar .add(5,1);则表示对日期进行加一天操作。如果是1则代表的是对年份操作,2是对月份操作,3是对星期操作,5是对日期操作,11是对小时操作,12是对分钟操作,13是对秒操作,14是对毫秒操作。
calendar.DATE也属于5。
注意:
1. 在获取月份时,Calendar.MONTH + 1 的原因(Java中Calendar.MONTH返回的数值其实是当前月距离第一个月有多少个月份的数值)Java中的月份遵循了罗马历中的规则:当时一年中的月份数量是不固定的,第一个月是JANUARY。而Java中Calendar.MONTH返回的数值其实是当前月距离第一个月有多少个月份的数值,JANUARY在Java中返回“0”,所以我们需要+1。
2. 在获取星期几 Calendar.DAY_OF_WEEK – 1 的原因
Java中Calendar.DAY_OF_WEEK其实表示:一周中的第几天,所以他会受到 第一天是星期几 的影响。
有些地区以星期日作为一周的第一天,而有些地区以星期一作为一周的第一天,这2种情况是需要区分的。
获取2小时之后的的日期
Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, calendar.get(Calendar.HOUR_OF_DAY) - 2); String time = DateUtils.dateToStr(calendar.getTime());
获取10分组之后的日期
Calendar calendar = Calendar.getInstance(); calendar.set( Calendar.MINUTE, calendar.get(Calendar.MINUTE) - 10); String time = DateUtils.dateToStr(calendar.getTime());
DateUtils.dateToStr为封装的类,将日期转化为String。
内容为:
public String dateToStr(Date date) {
String result = ""; try { if (date != null) { DateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); result = sdf.format(date); } } catch (Exception e) { e.printStackTrace(); }}