java实现在原有日期时间上加几个月或几天
作者:小马 发布时间:2023-08-06 16:39:48
标签: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,用来获得当前日期是一周的第几天
来源:https://blog.csdn.net/qq_40205116/article/details/83932386


猜你喜欢
- 以Java web的方式显示图片到浏览器以Java web的方式下载服务器文件到浏览器以Spring Boot的方式显示图片或下载文件到浏览
- 使用场景当遇到需要临时修改的 bug,但当前正在开发的内容不能删掉,这个时候就需要把当前已经开发的代码另外保存下来(即保存现场),当把 bu
- Activiti 介绍Activiti是一个开源的工作流引擎,它实现了BPMN 2.0规范,可以发布设计好的流程定义,并通过api进行流程调
- SpringBoot切面拦截@PathVariable参数及抛出异常的全局处理微信小程序的接口验证防止非法请求,登录的时候获取openId生
- 首先需要清楚一个概念:函数式接口;它指的是有且只有一个未实现的方法的接口,一般通过FunctionalInterface这个注解来表明某个接
- Mybatis-plus全局id生成策略在配置文件中加入以下代码后就不需要在实体类种的id上添加@TableId(value = “id”,
- 一. 依赖管理Ⅰ. 部分dependency导入时为啥不需要指定版本?我们创建项目时添加的依赖并没有帮我们指定版本号<>,那Sp
- 一、创建项目1.File->new->project;2.选择“Spring Initializr”,点击next;(jdk1.
- 本文实例为大家分享了Java实现马踏棋盘的具体代码,供大家参考,具体内容如下马在某个点最多可能有8种走法,用递归和回溯实现。注:代码中,查找
- mybatis-plus 新增/修改 自动填充指定字段1.需要修改的字段在模型类上添加@TableField(fill = FieldFil
- Android中的Intent是一个非常重要的类,如果对Intent不是特别了解,可以参见《详解Android中Intent的使用方法》。如
- 本文实现了一个有趣的小东西:使用自定义View绘图,一边画线,画出的线条渐渐变淡,直到消失。效果如下图所示:用属性动画或者渐变填充(Shad
- 近日工作任务较轻,有空学习学习技术,遂来研究如果实现读写分离。这里用博客记录下过程,一方面可备日后查看,同时也能分享给大家(网上的资料真的大
- 众所周知,android的底部菜单栏太重要,平时项目一般都是需要用到的,但是网上关于这方面的demo做得太丑了,实在惨不忍睹,所以这里便用R
- (1)实际应用BeanUtils.copyProperties(赋值目标对象,模板源对象);我们都知道当有两个对象AB,属性名称一样的情况下
- 现象在日志配置文件 logback-spring.xml 中,无论怎么修改级别,mybatis 的 sql 日志都会打印出来。原因在 app
- 一、网络爬虫的基本知识网络爬虫通过遍历互联网络,把网络中的相关网页全部抓取过来,这体现了爬的概念。爬虫如何遍历网络呢,互联网可以看做是一张大
- 注解注解为我们在代码中添加信息提供一种形式化的方法,使我们可以在源码、编译时、运行时非常方便的使用这些数据。注解是在JAVA SE5中引入的
- 直接贴上代码,里面都有注释/// <summary> &n
- GitHub 地址:quickjs-android-wrapper特性支持 Java 和 JavaScript 类型互转支持 Promise