2012-11-02 35 views
2

我去顯示當前的日期和六(6)最後日期如何顯示最近六個日期java.util.Date?

例如:

02/11/2012 
01/11/2012 
31/10/2012 
30/10/2012 
29/10/2012 
28/10/2012 

獲得當天在JAVA我用:

Date date = Calendar.getInstance().getTime(); 
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); 
System.out.println("current day : "+sdf.format(date)); 

但怎麼辦我減少日子?

+2

你的問題不明確 - 標題會談關於「本週」,但這個問題談論了最近6天。一般來說,它們不是一回事。例如,在星期二我不會把「上週四」計算在當前的一週。 –

+0

我看到了,給我一個理想的標題 –

+1

那麼你是說你的問題主體*是*正確的?在這種情況下:「我如何顯示最近六個日曆日?」或類似的東西。順便說一句,你*有*使用java.util.Date和java.util.Calendar?喬達時間是一個*多*清潔API ... –

回答

4

可以使用Calendar#add方法。減去一天,如:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); 
Calendar cal = Calendar.getInstance(); 
Date date=cal.getTime(); 
System.out.println(sdf.format(date)); //remove line to display only the last 5 days 
for (int i=0;i<5;i++){ 
    cal.add(Calendar.DAY_OF_MONTH,-1); 
    date=cal.getTime(); 
    System.out.println(sdf.format(date)); 
} 

像喬恩斯基特(​​即將500K先生:))的建議,我也發現了約達時間API更清潔和適當的,甚至對於這種簡單的任務:

DateTime dt = new DateTime();      
for (int i = 0; i < 6; i++) {      
    System.out.println(dt.toString("yyyy/MM/dd")); 
    dt = dt.minusDays(1);       
}             
+0

賓果遊戲的作品....大瑟克的朋友 –

+1

@ berber5不客氣。 – dan

+0

,如果我使用java.sql.Date? –

2
Calendar c = Calendar.getInstance(); 
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); 
System.out.println("current day : "+sdf.format(c.getTime())); 

// decrement 1 day 
c.add(Calendar.DAY_OF_MONTH, -1); 

// getTime() returns a java.util.Date 
System.out.println("the day before : "+sdf.format(c.getTime())); 

// getTimeInMillis() returns a long, which can be used to construct a java.sql.Date 
System.out.println("the day before : "+sdf.format(new java.sql.Date(c.getTimeInMillis())); 

等等......

+0

謝謝你的回答! thats greatttt –

+0

不客氣! – mthmulders

+0

如果我使用java.sql.Date? –