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
0
投稿
猜你喜欢
- Apache Dubbo是一款高性能、轻量级的开源 Java RPC 框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡
- 选择排序:(Selection sort)是一种简单直观的排序算法,也是一种不稳定的排序方法。选择排序的原理一组无序待排数组,做升序排序,我
- 前言在阅读本文之前, 希望你可以思考一下下面几个问题, 带着问题去阅读文章会获得更好的效果。发送消息的时候, 当Broker挂掉了,消息体还
- 一、前言最近自己在学习Spring boot的过程中开发了一个组件 multithreadpool-spring-boot-starter,
- 题目描述:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数
- 本文实例为大家分享了java实现马踏棋盘的具体代码,供大家参考,具体内容如下马踏棋盘算法介绍8X8棋盘,马走日字,要求每个方格只进入一次,走
- SpringCloud简介Spring cloud是一个基于Spring Boot实现的服务治理工具包,在微服务架构中用于管理和协调服务的微
- 在没介绍正文之前,先给大家介绍下websocket的背景和原理:背景在浏览器中通过http仅能实现单向的通信,comet可以一定程度上模拟双
- 前言本文将实现一个MyBatis的Springboot的Starter包,引用这个Starter包后,仅需要提供少量配置信息,就能够完成My
- SessionFactory在Hibernate中实际上起到了一个缓冲区的作用 他缓冲了HI
- public void add(intindex, Eelement)从index索引的位置添加element元素,后面的元素都往
- 关于注入数据说明1.不通过配置文件注入数据通过@Value将外部的值动态注入到Bean中,使用的情况有:注入普通字符串注入操作系统属性注入表
- 在linux主机部署Eureka高可用方案的时候,发现注册到服务中心的服务IP是随机的,由于主机的网卡是多个,随机的IP并不是自己想要的,上
- 概述从今天开始, 小白我将带大家开启 Java 数据结构 & 算法的新篇章.贪心算法贪心算法 (Greedy Algorithm)
- 定义MD全称Message-Digest,即信息摘要,所以MD家族的算法也叫信息摘要算法MD家族有MD2、MD3、MD4、MD5,一代比一代
- 仅供学习交流,禁止商业用途。如侵害利益,联系必删!前言最近一位小伙伴钟爱二次元文化,于是找到半次元这个app,但是很快他就遇到了问题。一、案
- 知识点:1.使用SQL Helper创建数据库2.数据的增删查改(PRDU:Put、Read、Delete、Update)背景知识:上篇文章
- 笔者计划为大家介绍分布式文件系统,用于存储应用的图片、word、excel、pdf等文件。在开始介绍分布式文件系统之前,为大家介绍一下使用本
- 我们使用Jmeter测试同学的网站时,就会出现网站无法访问,403等错误。An error occurred.Sorry, the page
- 前言回老家,实在太无聊,于是乎给自己整了一套台式机配置,总价 1W+,本以为机器到位后可以打打游戏,学学技术打发无聊的时光。但是我早已不是从