java实现在原有日期时间上加几个月或几天

 更新时间:2022年10月26日 14:22:46   作者:小马 同学  
这篇文章主要介绍了java实现在原有日期时间上加几个月或几天,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

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

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

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 Rabbitmq中四种集群架构的区别详解

    Java Rabbitmq中四种集群架构的区别详解

    这篇文章主要为大家详细介绍了Java Rabbitmq中四种集群架构的区别,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • SpringBoot接口或方法进行失败重试的实现方式

    SpringBoot接口或方法进行失败重试的实现方式

    为了防止网络抖动,影响我们核心接口或方法的成功率,通常我们会对核心方法进行失败重试,如果我们自己通过for循环实现,会使代码显得比较臃肿,所以本文给大家介绍了SpringBoot接口或方法进行失败重试的实现方式,需要的朋友可以参考下
    2024-07-07
  • 基于ArrayList常用方法的源码全面解析

    基于ArrayList常用方法的源码全面解析

    下面小编就为大家带来一篇基于ArrayList常用方法的源码全面解析。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • 将15位身份证补全为18位身份证的算法示例详解

    将15位身份证补全为18位身份证的算法示例详解

    这篇文章主要给大家介绍了关于将15位身份证补全为18位身份证算法的相关资料,文中通过示例代码给大家介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编一起来学习学习吧。
    2017-06-06
  • Spring Boot中的Properties的使用详解

    Spring Boot中的Properties的使用详解

    这篇文章主要介绍了Spring Boot中的Properties的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • JFinal使用ajaxfileupload实现图片上传及预览

    JFinal使用ajaxfileupload实现图片上传及预览

    这篇文章主要为大家详细介绍了JFinal使用ajaxfileupload实现图片上传及预览,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-09-09
  • Java项目启动成功、失败信息实时反馈提醒问题(邮件或者短信)

    Java项目启动成功、失败信息实时反馈提醒问题(邮件或者短信)

    这篇文章主要介绍了Java项目启动成功、失败信息实时反馈提醒问题(邮件或者短信),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • springboot2学习世界著名程序springboot开发体验

    springboot2学习世界著名程序springboot开发体验

    这篇文章主要为大家介绍了世界著名程序springboot开发体验,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • MyBatis使用注解开发实现步骤解析

    MyBatis使用注解开发实现步骤解析

    这篇文章主要介绍了MyBatis使用注解开发实现步骤解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • Java实战个人博客系统的实现流程

    Java实战个人博客系统的实现流程

    读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用java+springboot+mybatis+redis+vue+elementui+Mysql实现一个个人博客系统,大家可以在过程中查缺补漏,提升水平
    2022-01-01

最新评论