Calendar calendar = Calendar.getInstance();
            calendar.add(Calendar.MONTH,1);
            calendar.add(Calendar.DATE,-calendar.get(Calendar.DATE));
            ymd.addText(calendar.get(Calendar.YEAR)+"-"+(calendar.get(Calendar.MONTH)+1)+"-"+calendar.get(Calendar.DATE));
为什么显示是4月30号,今天明明是4月1号

解决方案 »

  1.   


    Date nowDate = new Date();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    String strData = sdf.format(nowDate);
    System.out.println(strData );这样不行吗?
      

  2.   

    代码注释上写着 modify as date to the last day of this month
      

  3.   

    calendar.add(Calendar.MONTH,1);
    在当前月份加了一个月,所以现在是5月
    calendar.get(Calendar.DATE);
    这个得到的是本月的第几天,所以是第一天,也就是值是1
    calendar.add(Calendar.DATE,-calendar.get(Calendar.DATE));
    这个是在现在月(上面已经是5月了)的第一天减去了一天
    所以是4月30日
      

  4.   


    Calendar calendar = Calendar.getInstance();
    calendar.add(Calendar.MONTH,0);
    calendar.add(Calendar.DATE,0);
    ymd.addText(calendar.get(Calendar.YEAR)+"-"+(calendar.get(Calendar.MONTH)+1)+"-"+calendar.get(Calendar.DATE));这样就是当前的系统时间了
      

  5.   

    你为什么要加 calendar.add(Calendar.MONTH,1);
    这句
    这就是要加一个月罗 呵呵
      

  6.   

    还是4月30日啊,不能是29日。
    calendar.add(Calendar.DATE,0);你改成这样看看
    Calendar.DATE得到的当前月的第几天,几号就是几,明天的话是2
    calendar.get(Calendar.DATE);得到的还是2
    calendar.add(Calendar.DATE,-calendar.get(Calendar.DATE));
    2-2不还是上个月的最后一天嘛,所以还是4月30号