使用Calendar需要注意clear

来源:互联网 发布:js 图片跨域 编辑:程序博客网 时间:2024/04/28 20:46

  date是前台传的值,格式为2014-01-01的形式:如下的代码是去date日期当月的最大天数日期

int month_ = Integer.parseInt(date.substring(5,7)); //取天数
int year = Integer.parseInt(date.substring(0,4));//取年份
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
Calendar cal = Calendar.getInstance();
cal.clear();//必须使用,否则会继承自系统当前时间 //这行数据一定不能省,否则会继承系统当前的时间

//之前在项目中一直遇到这种问题,输二月份,结果得到30或31天。只要有set的方法必须clear.
cal.add(Calendar.YEAR, year);
// 下面可以设置月份,注:月份设置要减1,所以设置1月就是1-1,设置2月就是2-1,如此类推
cal.set(Calendar.MONTH, month_ - 1);
// 调到上个月
// cal.add(Calendar.MONTH, -1);
// 得到一个月最最后一天日期(31/30/29/28)
int MaxDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
// 按你的要求设置时间
cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), MaxDay, 23,
59, 59);
String now_date = sdf.format(cal.getTime());

int year = Integer.parseInt(date.substring(0,4));
System.out.println("month_:"+month_);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
Calendar cal = Calendar.getInstance();
cal.clear();//必须使用,否则会继承自系统当前时间
cal.add(Calendar.YEAR, year);
// 下面可以设置月份,注:月份设置要减1,所以设置1月就是1-1,设置2月就是2-1,如此类推
cal.set(Calendar.MONTH, month_ - 1);
// 调到上个月
// cal.add(Calendar.MONTH, -1);
// 得到一个月最最后一天日期(31/30/29/28)
int MaxDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
// 按你的要求设置时间
cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), MaxDay, 23,
59, 59);
String now_date = sdf.format(cal.getTime());
0 0
原创粉丝点击