java实现在原有日期时间上加几个月或几天
作者:小马 时间:2023-08-06 16:39:48
如何在原有日期时间上加几个月或几天
在原有的时间上添加几个月
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,日期时间,几个月,几天
0
投稿
猜你喜欢
Flutter开发技巧RadialGradient中radius计算详解
2023-10-05 17:42:22
Android客户端实现图片轮播控件
2023-08-12 17:01:57
C#调用CMD命令实例
2021-06-17 10:08:12
Android获取和读取短信验证码的实现方法
2021-09-06 07:29:17
如何利用反射生成 MyBatisPlus中QueryWrapper动态条件
2021-10-20 14:59:40
Java游戏开发拼图游戏经典版
2023-10-10 16:23:08
Java基础之异常处理详解
2021-07-14 03:03:49
C#深拷贝方法探究及性能比较(多种深拷贝)
2022-08-30 18:17:02
Spring Boot 优雅整合多数据源
2023-08-22 16:05:07
基于Spring Boot保护Web应用程序
2022-11-15 19:14:48
springboot注册bean的三种方法
2023-11-22 21:57:12
C#使用NPOI实现Excel和DataTable的互转
2022-12-06 22:51:05
Android手势识别器GestureDetector使用详解
2022-01-16 14:25:17
Java sleep方法及中断方式、yield方法代码实例
2023-10-22 10:59:49
使用GSON库将Java中的map键值对应结构对象转换为JSON
2022-10-21 14:51:47
SpringBoot中实现接收文件和对象
2022-02-08 10:16:53
SpringBoot整合Redisson实现分布式锁
2021-08-01 12:04:35
Struts2下拉框实例解析
2021-09-16 16:29:59
Android中创建对话框(确定取消对话框、单选对话框、多选对话框)实例代码
2023-07-04 01:48:25
控制Android LED灯颜色的代码实例
2022-12-30 02:53:20