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三种获取redis的连接及redis_String类型演示(适合新手)
这篇文章主要介绍了Java三种获取redis的连接及redis_String类型演示(适合新手),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-12-12Spring Cloud Gateway 服务网关快速实现解析
这篇文章主要介绍了Spring Cloud Gateway 服务网关快速实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2019-08-08java中switch case语句需要加入break的原因解析
这篇文章主要介绍了java中switch case语句需要加入break的原因解析的相关资料,需要的朋友可以参考下2017-07-07原因分析IDEA导入Spring-kafka项目Gradle编译失败
这篇文章主要为大家介绍分析了IDEA导入Spring-kafka项目Gradle中编译失败原因及解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步2022-02-02
最新评论