java實現(xiàn)在原有日期時間上加幾個月或幾天
如何在原有日期時間上加幾個月或幾天
在原有的時間上添加幾個月
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//設(shè)置日期格式 Date date = new Date(); System.out.println(df.format(date)); ? // 當(dāng)前系統(tǒng)時間 ? ? ? ? Date newDate = stepMonth(date, 1); System.out.println("當(dāng)前時間前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";?? ?//當(dāng)前時間 ?? ?int num = 15;?? ?//加的天數(shù) ?? ?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("增加天數(shù)以后的時間:" + enddate); ? }
在日期加上特定的天數(shù)或者時間
在日常項目中,經(jīng)常會遇到需要在當(dāng)前日期加上特定的天數(shù)作為新的日期,比如:
- 會員充值
- 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("當(dāng)前時間為:" + 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
當(dāng)前年份MONTH
當(dāng)前月份( 注:初始值是從0開始,所以得到的比實際月份小1月)DATE
一個月中的某天WEEK_OF_YEAR
當(dāng)前年中的第幾個星期WEEK_OF_MONTH
當(dāng)前月中的第幾個星期DAY_OF_MONTH
一個月中的第幾天DAY_OF_YEAR
一年中的第幾天DAY_OF_WEEK
一個星期中的第幾天DAY_OF_WEEK_IN_MONTH
當(dāng)前月中的第幾個星期(注:當(dāng)前月第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);?
這幾行代碼返回的結(jié)果是一樣的,都是將日期+1
就沒有區(qū)別說是在月的日期中加1還是年的日期中加1
但是Calendar設(shè)置DAY_OF_MONTH和DAY_OF_YEAR的目的不是用來+1
將日期加1,這通過cal1.add(Calendar.DATE,1)就可以實現(xiàn)
DAY_OF_MONTH
的主要作用是cal.get(DAY_OF_MONTH),用來獲得這一天在是這個月的第多少天Calendar.DAY_OF_YEAR
的主要作用是cal.get(DAY_OF_YEAR),用來獲得這一天在是這個年的第多少天。
同樣,還有DAY_OF_WEEK,用來獲得當(dāng)前日期是一周的第幾天
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java?Rabbitmq中四種集群架構(gòu)的區(qū)別詳解
這篇文章主要為大家詳細介紹了Java?Rabbitmq中四種集群架構(gòu)的區(qū)別,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-02-02SpringBoot接口或方法進行失敗重試的實現(xiàn)方式
為了防止網(wǎng)絡(luò)抖動,影響我們核心接口或方法的成功率,通常我們會對核心方法進行失敗重試,如果我們自己通過for循環(huán)實現(xiàn),會使代碼顯得比較臃腫,所以本文給大家介紹了SpringBoot接口或方法進行失敗重試的實現(xiàn)方式,需要的朋友可以參考下2024-07-07JFinal使用ajaxfileupload實現(xiàn)圖片上傳及預(yù)覽
這篇文章主要為大家詳細介紹了JFinal使用ajaxfileupload實現(xiàn)圖片上傳及預(yù)覽,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-09-09Java項目啟動成功、失敗信息實時反饋提醒問題(郵件或者短信)
這篇文章主要介紹了Java項目啟動成功、失敗信息實時反饋提醒問題(郵件或者短信),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06springboot2學(xué)習(xí)世界著名程序springboot開發(fā)體驗
這篇文章主要為大家介紹了世界著名程序springboot開發(fā)體驗,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05Java實戰(zhàn)個人博客系統(tǒng)的實現(xiàn)流程
讀萬卷書不如行萬里路,只學(xué)書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+springboot+mybatis+redis+vue+elementui+Mysql實現(xiàn)一個個人博客系統(tǒng),大家可以在過程中查缺補漏,提升水平2022-01-01