如何用Java在现有日期上增加特定月数或天数?

2026-05-26 00:231阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计965个文字,预计阅读时间需要4分钟。

如何用Java在现有日期上增加特定月数或天数?

目录+如何在原有日期时间上加几个月或几天+在原有日期上添加几天+在日期上加特定天数或时间+附Calendar+字段说明+!!!特别提醒+如何在原有日期时间上加几个月或几天+!!!

目录
  • 如何在原有日期时间上加几个月或几天
    • 在原有的时间上添加几个月
    • 在原有的时间上添加几天
  • 在日期加上特定的天数或者时间
    • 附Calendar 字段说明
    • !!!特别提醒

如何在原有日期时间上加几个月或几天

在原有的时间上添加几个月

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式 Date date = new Date(); System.out.println(df.format(date));   // 当前系统时间         Date newDate = stepMonth(date, 1); System.out.println("当前时间前1个月的日期:" + df.format(newDate));     public static Date stepMonth(Date sourceDate, int month) {     Calendar c = Calendar.getInstance();     c.setTime(sourceDate);     c.add(Calendar.MONTH, month);       return c.getTime(); }

在原有的时间上添加几天

public static void main(String[] args) throws ParseException {     String time = "2019-6-02 11:05:51";    //当前时间     int num = 15;    //加的天数     SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");     Date  currdate = format.parse(time);     System.out.println("初始的时间是:" + time);     Calendar ca = Calendar.getInstance();         ca.setTime(currdate);     ca.add(Calendar.DATE, num);     currdate = ca.getTime();     String enddate = format.format(currdate);     System.out.println("增加天数以后的时间:" + enddate);   }

在日期加上特定的天数或者时间

在日常项目中,经常会遇到需要在当前日期加上特定的天数作为新的日期,比如:

  • 会员充值
  • N天之前的日期

public static void main(String[] args) {         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");         String nowDateString = "2019-05-06 13:34:25";         System.out.println("当前时间为:" + nowDateString);         try {             Date sourceDate = sdf.parse(nowDateString);             Calendar calendar = Calendar.getInstance();             calendar.setTime(sourceDate);             calendar.add(Calendar.DATE,-5);             Date targetDate = calendar.getTime();             System.out.println("减去5天后的日期:"+sdf.format(targetDate));         } catch (ParseException e) {             e.printStackTrace();         }     }

附Calendar 字段说明

  • YEAR 当前年份
  • MONTH 当前月份( 注:初始值是从0开始,所以得到的比实际月份小1月)
  • DATE 一个月中的某天
  • WEEK_OF_YEAR 当前年中的第几个星期
  • WEEK_OF_MONTH 当前月中的第几个星期
  • DAY_OF_MONTH 一个月中的第几天
  • DAY_OF_YEAR 一年中的第几天
  • DAY_OF_WEEK 一个星期中的第几天
  • DAY_OF_WEEK_IN_MONTH 当前月中的第几个星期(注:当前月第1-7天是第一个星期,8-14是第二个星期,以此类推)
  • HOUR_OF_DAY 一天中的第几个小时
  • MINUTE 一小时中的第几分钟
  • SECOND 一分钟中的第几秒
  • MILLISECOND 一秒中的第几毫秒

!!!特别提醒

calendar.add(Calendar.DAY_OF_MONTH,1);   calendar.add(Calendar.DAY_OF_YEAR,1);   calendar.add(Calendar.DATE,1); 

这几行代码返回的结果是一样的,都是将日期+1

就没有区别说是在月的日期中加1还是年的日期中加1

但是Calendar设置DAY_OF_MONTH和DAY_OF_YEAR的目的不是用来+1

将日期加1,这通过cal1.add(Calendar.DATE,1)就可以实现

  • DAY_OF_MONTH的主要作用是cal.get(DAY_OF_MONTH),用来获得这一天在是这个月的第多少天
  • Calendar.DAY_OF_YEAR的主要作用是cal.get(DAY_OF_YEAR),用来获得这一天在是这个年的第多少天。

同样,还有DAY_OF_WEEK,用来获得当前日期是一周的第几天

以上为个人经验,希望能给大家一个参考,也希望大家多多支持自由互联。

如何用Java在现有日期上增加特定月数或天数?

本文共计965个文字,预计阅读时间需要4分钟。

如何用Java在现有日期上增加特定月数或天数?

目录+如何在原有日期时间上加几个月或几天+在原有日期上添加几天+在日期上加特定天数或时间+附Calendar+字段说明+!!!特别提醒+如何在原有日期时间上加几个月或几天+!!!

目录
  • 如何在原有日期时间上加几个月或几天
    • 在原有的时间上添加几个月
    • 在原有的时间上添加几天
  • 在日期加上特定的天数或者时间
    • 附Calendar 字段说明
    • !!!特别提醒

如何在原有日期时间上加几个月或几天

在原有的时间上添加几个月

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式 Date date = new Date(); System.out.println(df.format(date));   // 当前系统时间         Date newDate = stepMonth(date, 1); System.out.println("当前时间前1个月的日期:" + df.format(newDate));     public static Date stepMonth(Date sourceDate, int month) {     Calendar c = Calendar.getInstance();     c.setTime(sourceDate);     c.add(Calendar.MONTH, month);       return c.getTime(); }

在原有的时间上添加几天

public static void main(String[] args) throws ParseException {     String time = "2019-6-02 11:05:51";    //当前时间     int num = 15;    //加的天数     SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");     Date  currdate = format.parse(time);     System.out.println("初始的时间是:" + time);     Calendar ca = Calendar.getInstance();         ca.setTime(currdate);     ca.add(Calendar.DATE, num);     currdate = ca.getTime();     String enddate = format.format(currdate);     System.out.println("增加天数以后的时间:" + enddate);   }

在日期加上特定的天数或者时间

在日常项目中,经常会遇到需要在当前日期加上特定的天数作为新的日期,比如:

  • 会员充值
  • N天之前的日期

public static void main(String[] args) {         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");         String nowDateString = "2019-05-06 13:34:25";         System.out.println("当前时间为:" + nowDateString);         try {             Date sourceDate = sdf.parse(nowDateString);             Calendar calendar = Calendar.getInstance();             calendar.setTime(sourceDate);             calendar.add(Calendar.DATE,-5);             Date targetDate = calendar.getTime();             System.out.println("减去5天后的日期:"+sdf.format(targetDate));         } catch (ParseException e) {             e.printStackTrace();         }     }

附Calendar 字段说明

  • YEAR 当前年份
  • MONTH 当前月份( 注:初始值是从0开始,所以得到的比实际月份小1月)
  • DATE 一个月中的某天
  • WEEK_OF_YEAR 当前年中的第几个星期
  • WEEK_OF_MONTH 当前月中的第几个星期
  • DAY_OF_MONTH 一个月中的第几天
  • DAY_OF_YEAR 一年中的第几天
  • DAY_OF_WEEK 一个星期中的第几天
  • DAY_OF_WEEK_IN_MONTH 当前月中的第几个星期(注:当前月第1-7天是第一个星期,8-14是第二个星期,以此类推)
  • HOUR_OF_DAY 一天中的第几个小时
  • MINUTE 一小时中的第几分钟
  • SECOND 一分钟中的第几秒
  • MILLISECOND 一秒中的第几毫秒

!!!特别提醒

calendar.add(Calendar.DAY_OF_MONTH,1);   calendar.add(Calendar.DAY_OF_YEAR,1);   calendar.add(Calendar.DATE,1); 

这几行代码返回的结果是一样的,都是将日期+1

就没有区别说是在月的日期中加1还是年的日期中加1

但是Calendar设置DAY_OF_MONTH和DAY_OF_YEAR的目的不是用来+1

将日期加1,这通过cal1.add(Calendar.DATE,1)就可以实现

  • DAY_OF_MONTH的主要作用是cal.get(DAY_OF_MONTH),用来获得这一天在是这个月的第多少天
  • Calendar.DAY_OF_YEAR的主要作用是cal.get(DAY_OF_YEAR),用来获得这一天在是这个年的第多少天。

同样,还有DAY_OF_WEEK,用来获得当前日期是一周的第几天

以上为个人经验,希望能给大家一个参考,也希望大家多多支持自由互联。

如何用Java在现有日期上增加特定月数或天数?