獲取當前日期算前一年、前一月、前一天Calendar



問題的本身沒有什么難度,但是要想一下子找到一個現成的方法還真不是那么容易,本來以為java.util.Date中會有方法結果找了半天沒找到,最后還是在Calendar中找到了,記下別忘了!!

核心:使用Calendar的add(int field, int amount)方法

Calendar ca = Calendar.getInstance();//得到一個Calendar的實例 
ca.setTime(new Date()); //設置時間為當前時間 
ca.add(Calendar.YEAR, -1); //年份減1 
Date lastMonth = ca.getTime(); //結果

同樣,類似的,求前一月ca.add(Calendar.MONTH, -1),前一天ca.add(Calendar.DATE, -1)

=================補充=================
有朋友說“月份這樣做是有問題的,比如當前時間是2009-12-31,你在月份上減1變成了2009-12-1”,我試了一下沒有出現這樣的問題,不過印象中好像確實有遇到過這樣的情況,代碼是怎么寫的已經記不清了

Calendar ca = Calendar.getInstance();//得到一個Calendar的實例 
ca.set(2009, 11, 31);//月份是從0開始的,所以11表示12月 
Date now = ca.getTime(); 
ca.add(Calendar.MONTH, -1); //月份減1 
Date lastMonth = ca.getTime(); //結果 
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd"); 
System.out.println(sf.format(now)); 
System.out.println(sf.format(lastMonth)); 

打印出來的結果是: 2009-12-31
2009-11-30

互聯網 信息聚合網站 : www.yidin.net 聚合互聯網最優質資源、協助設計、分享經驗、提升自我 歡迎訪問(投稿,招聘信息請入)

歡迎各位同學加入 android 技術二群 222392467 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM