当前位置:   article > 正文

踩坑 calendar.getActualMaximum(calendar.DAY_OF_MONTH)函数

calendar.getactualmaximum(calendar.day_of_month)

当使用calendar.getActualMaximum(calendar.DAY_OF_MONTH)获取每月最后一天时或者获取当季的最后一天时,会出现在二月的时候获取的不准确的情况

问题出现原因:

代码没有动过,之前一直是使用这个时间函数来进行获取上个月的最后一天,但是突然有一天获取的上月(主要问题出现在二月份)最后一天的日期不准,导致程序出现异常。

解决办法:

使用其它方式获取上月(上季)最后一天(代码如下):

//获取上个季度的最后一天
    public static String getLastDayOfLastQuarter() {
        SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
        Calendar endCalendar = Calendar.getInstance();
        endCalendar.set(Calendar.MONTH, ((int) endCalendar.get(Calendar.MONTH) / 3 - 1) * 3 + 2);
        endCalendar.set(Calendar.DAY_OF_MONTH, endCalendar.getActualMaximum(Calendar.DAY_OF_MONTH));
        return sf.format(endCalendar.getTime());
    }

    //获取上月的最后一天日期
    public static String getLastDayOfLastMonth(){

        SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");

//        Calendar calendar=Calendar.getInstance();
//
//        int month=calendar.get(Calendar.MONTH);
//
//        calendar.set(Calendar.MONTH, month-1);
//
//        calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));


        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.DAY_OF_MONTH, 1);
        calendar.add(Calendar.DATE, -1);

        return sf.format(calendar.getTime());

    }```

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/549236
推荐阅读
  

闽ICP备14008679号