java實現在原有日期時間上加幾個月或幾天
更新時間:2022年10月26日 14:22:46 作者:小馬 同學
這篇文章主要介紹了java實現在原有日期時間上加幾個月或幾天,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
如何在原有日期時間上加幾個月或幾天
在原有的時間上添加幾個月
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//設置日期格式 Date date = new Date(); System.out.println(df.format(date)); ? // 當前系統(tǒng)時間 ? ? ? ? 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
就沒有區(qū)別說是在月的日期中加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,用來獲得當前日期是一周的第幾天
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
JFinal使用ajaxfileupload實現圖片上傳及預覽
這篇文章主要為大家詳細介紹了JFinal使用ajaxfileupload實現圖片上傳及預覽,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-09-09Java項目啟動成功、失敗信息實時反饋提醒問題(郵件或者短信)
這篇文章主要介紹了Java項目啟動成功、失敗信息實時反饋提醒問題(郵件或者短信),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06springboot2學習世界著名程序springboot開發(fā)體驗
這篇文章主要為大家介紹了世界著名程序springboot開發(fā)體驗,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05