java中关于日期类Calendar的简单使用

根据年月获取月份第一天

public static String getSDateOfMonth(String monthId) {
    String SDate;
    Calendar cal = Calendar.getInstance();
    int year = cal.get(Calendar.YEAR);
    int month = cal.get(Calendar.MONTH) + 1;
    int y = Integer.parseInt(monthId.substring(0, 4));
    int m = Integer.parseInt(monthId.substring(4, 6));
    if (y == year && m == month) {
      if (month < 10) {// 月份少于10
        SDate = "" + year + "-0" + month + "-01";
      } else {
        SDate = "" + year + month + "-01";
      }
    } else {// 不是当前月
      if (m < 10) {// 月份少于10
        SDate = "" + y + "-0" + m + "-01";
      } else {
        SDate = "" + y + m + "-01";
      }
    }
    return SDate;
  };

根据年月获取月份最后一天

public static String getLastDayOfMonth(String monthId) {
    int year = Integer.parseInt(monthId.substring(0, 4));
    int month = Integer.parseInt(monthId.substring(4, 6));
    Calendar cal = Calendar.getInstance();
    // 设置年份
    cal.set(Calendar.YEAR, year);
    // 设置月份
    cal.set(Calendar.MONTH, month - 1);
    // 获取某月最大天数
    int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
    // 设置日历中月份的最大天数
    cal.set(Calendar.DAY_OF_MONTH, lastDay);
    // 格式化日期
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    String lastDayOfMonth = sdf.format(cal.getTime());

    return lastDayOfMonth;
  };

判断是否是当前年月

public static boolean isCurrentMonth(String month) {
    Calendar cal = Calendar.getInstance();
    int currentYear = cal.get(Calendar.YEAR);
    int currentMonth = cal.get(Calendar.MONTH) + 1;
    int y = Integer.parseInt(month.substring(0, 4));
    int m = Integer.parseInt(month.substring(4, 6));
    if (y == currentYear && m == currentMonth) {
      return true;
    }else{
      return false;
    }
  };

 

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");  
         
        //获取前月的第一天 
        Calendar   cal_1=Calendar.getInstance();//获取当前日期  
        cal_1.add(Calendar.MONTH, -1); 
        cal_1.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天  
        firstDay = format.format(cal_1.getTime()); 
        System.out.println("-----1------firstDay:"+firstDay);



        //获取前月的最后一天 
        Calendar cale = Calendar.getInstance();    
        cale.set(Calendar.DAY_OF_MONTH,0);//设置为1号,当前日期既为本月第一天  
        lastDay = format.format(cale.getTime()); 
        System.out.println("-----2------lastDay:"+lastDay); 
         
         
        //获取当前月第一天: 
        Calendar c = Calendar.getInstance();     
        c.add(Calendar.MONTH, 0); 
        c.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天  
        String first = format.format(c.getTime()); 
        System.out.println("===============first:"+first); 
         
        //获取当前月最后一天 
        Calendar ca = Calendar.getInstance();     
        ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));   
        String last = format.format(ca.getTime()); 
        System.out.println("===============last:"+last);

 

posted @ 2018-05-28 11:50  高木子  阅读(5161)  评论(0编辑  收藏  举报