2011-07-31 31 views
3

我正在使用Nebulla DateChooserCombo。我用它作爲dateChooserFrom.getText();。它是像2011年7月31日生成的結果,其格式爲m/dd/yyyymm/dd/yyyy。我需要yyyy/mm/dd格式的結果。爲此我使用代碼。需要在java中以yyyy/mm/dd格式顯示日期

DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); 
String s = df.format(dateChooserFrom.getText()); 

但是,當我運行代碼它說Cannot format given Object as a Date。所以請有人能幫助我。我正在使用eclipse rcp和java。

+0

什麼是拋出的實際的異常。需要更多信息。 –

+0

@ brett實際的除外是'java.lang.IllegalArgumentException:無法格式化給定的對象作爲日期 \t在java.text.DateFormat.format(未知源) \t在java.text.Format.format(未知源)' –

+0

你說這個組件產生「mm/dd/yyyy」,但你的模式是「yyyy-MM-dd」。看到不同?斜線與減號? – rompetroll

回答

9
DateFormat dffrom = new SimpleDateFormat("M/dd/yyyy"); 
DateFormat dfto = new SimpleDateFormat("yyyy-MM-dd"); 
Date today = dffrom.parse("7/1/2011"); 
String s = dfto.format(today); 

首先將字符串轉換爲日期。

+0

@ cularis謝謝你的工作。但有時候「M/dd/yyyy」也可以是「MM/dd/yyyy」,我應該計算長度並執行條件。 –

1

我不知道Nebulla DateChooserCombo是什麼,但我猜這個問題與實例方法getText的返回類型有關。是約會嗎?因爲您必須將java.util.Date的實例傳遞給format方法。

+0

.getText在字符串格式中給出結果。準確地說是 –

+0

。 getText()看起來像可能會返回一個字符串... –

+0

所以這是因爲你不能使用格式方法的原因。我想你可以從這段文本中創建一個日期並使用格式化程序來獲取其他格式。 – lucapette

1

使用此:

public class Class1 { 
    public static void main(String args[]) { 
     Date date = new Date(); 
     Calendar calendar = Calendar.getInstance(); 
     calendar.setTime(date); 
     SimpleDateFormat SDF = new SimpleDateFormat("yyyy-MM-dd");//you can use any format that you want, for example:("yyyy/MM/dd") 
     String s = SDF.format(date); 
     System.out.print(s); 
     } 
}