問題的本身沒有什么難度,但是要想一下子找到一個現成的方法還真不是那么容易,本來以為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