• java日期增加一个月或减少一天


    一个Date类型的日期,希望在它基础上增加一个月,赋值给另外一个变量,这个时候该如何处理

        /**** 
         * 传入具体日期 ,返回具体日期增加一个月。 
         * @param date 日期(2017-04-13) 
         * @return 2017-05-13
         * @throws ParseException 
         */  
        private  String subMonth(String date) throws ParseException {  
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");  
            Date dt = sdf.parse(date);  
            Calendar rightNow = Calendar.getInstance();  
            rightNow.setTime(dt);  
            rightNow.add(Calendar.MONTH, 1);  
            Date dt1 = rightNow.getTime();  
            String reStr = sdf.format(dt1);  
            return reStr;  
        }

    可以看到 传入参数为 2017-04-13 输出结果为 2017-05-13 比原先增加了一个月,符合预期效果。

    如果希望减少一个月  修改代码为  rightNow.add(Calendar.MONTH, -1); 负数即为减少的值

    那么我们又希望在原来日期基础上增加或减少一天,又该如何实现呢? 看以下代码

     /**** 
      * 传入具体日期 ,返回具体日期减少一天 
      * @param date 日期(2017-04-13) 
      * @return 2017-04-12
      * @throws ParseException 
      */  
     private  String subDay(String date) throws ParseException {  
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");  
         Date dt = sdf.parse(date);  
         Calendar rightNow = Calendar.getInstance();  
         rightNow.setTime(dt);  
         rightNow.add(Calendar.DAY_OF_MONTH, -1);  
         Date dt1 = rightNow.getTime();  
         String reStr = sdf.format(dt1);  
         return reStr;  
     }
    

    输入日期 2017-04-13 输出日期 2017-04-12 比原来减少了一天,符合预期 。

    如果我们希望增加一天 或几天 只需要修改 rightNow.add(Calendar.DAY_OF_MONTH, 1);  正数即为增加天数。

  • 相关阅读:
    spring 环绕通知 ProceedingJoinPoint 执行proceed方法的作用是什么
    SpringMVC之RequestContextHolder分析
    MySQL中索引不会被用到的情况
    使用Stream快速对List进行一些操作
    Vue中this.$refs[name].resetFields();的使用
    好看的字体
    转,javascript中call()、apply()、bind()的用法终于理解
    vue中的$props
    手机端页面自适应解决方案-rem布局
    查看项目里特定npm包的版本号
  • 原文地址:https://www.cnblogs.com/xiaoniuniu886/p/10144045.html
Copyright © 2020-2023  润新知