2009-09-13 42 views
0

好吧,我想我的程序打印出日期:2009/1/1GregorianCalendar的不斷日期

,但是這是它打印出:

週四1月1日00:00:00東部時間2009

從這個代碼

GregorianCalendar startDate = new GregorianCalendar(2009, Calendar.JANUARY, 1); 
public void setStart() 
{ 
    startDate.setLenient(false); 
    Date date = new Date(startDate.getTimeInMillis()); 
    System.out.println(date); 
} 

我怎樣才能改變它,使它只打印出1/1/2009?

回答

2

使用SimpleDateFormat

GregorianCalendar startDate = new GregorianCalendar(2009, Calendar.JANUARY, 1); 
public void setStart() { 
    startDate.setLenient(false); 
    DateFormat df = new SimpleDateFormat("d/M/yyyy"); 
    df.format(startDate.getDate()); 
} 

你隱含調用toString()方法是(正確),打印出的全部內容。

順便說一句,沒有必要按照自己的方式構建日期。在Calendar上調用getDate()將返回Date對象。

+0

真棒的感謝! – Karen 2009-09-13 02:44:04

2

當前,正在調用Date.toString()方法來顯示GregorianCalendar實例的String表示形式。

需要做的是創建一個DateFormat這將產生一個所需的String表示。 DateFormat對象可用於使用format方法將Date實例格式化爲所需的格式。

實現所需內容的最簡單方法是使用SimpleDateFormat類,該類具有constructor which takes a format string以按所需形式輸出Date

Calendar calendar = new GregorianCalendar(2009, Calendar.JANUARY, 1); 
DateFormat df = new SimpleDateFormat("M/d/yyyy"); 
System.out.println(df.format(calendar.getTime())); 

輸出

1/1/2009 
+0

出於某種原因,無論我放哪個月,月的輸出爲0.當我這樣做,我得到1/0/2009 – Karen 2009-09-13 02:57:05

相關問題