zoukankan      html  css  js  c++  java
  • 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);  正数即为增加天数。

  • 相关阅读:
    MyBatis+Oracle+Sequence
    原来这就是JVM垃圾
    JVM内存布局
    CacheAsidePattern结论
    The LMAX Architecture
    网络编程
    随机存取文件流
    数据流
    打印流
    标准输入流、标准输出流
  • 原文地址:https://www.cnblogs.com/xiaoniuniu886/p/10144045.html
Copyright © 2011-2022 走看看