2013-01-08 51 views
-3

我場在課堂測試:SimpleDateFormat的解析到日期

private Date date; 

碼主:

SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy"); 
Date now = new Date(); 
Test test = new Test(); 
test.setDate(sdf.parse(now.toString())); 

但我有錯誤:

java.text.ParseException: Unparseable date: "Tue Jan 08 14:10:23 GMT 2013" 
    at java.text.DateFormat.parse(Unknown Source) 

如何可以解析今天的日期以sava

+7

爲什麼不'test.setDate(現在的);'?或過於複雜'test.setDate(sdf.parse(sdf.format(now)));' – jlordo

+0

您發送的日期不符合預期的格式。您應該將格式更改爲'EEE MM dd hh:mm:ss ZZZ yyyy'或更改字符串以將日期轉換爲'08.01.2013'。 –

回答

10

now.toString()不是將日期表示爲字符串的好方法,因爲它使用「默認」格式。爲了表示的日期爲一個字符串,你可以使用的SimpleDateFormatformat(Date date)方法:

SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy"); 
Date now = new Date(); 

String dateAsString = sdf.format(date); //"08.01.2013" 
Date dateFromString = sdf.parse(dateAsString); 
+0

我覺得'String dateAsString = sdf.format(now);'是你的意思。另外值得一提的是,這個dataFromString在當地時區設置爲午夜。根據數據的使用方式,日期可能會有所調整。 – GaryMcM

+0

這不是一個好的解決方案,因爲我得到的結果是:Tue Jan 08 15:08:42 GMT 2013 我想要08.01.2013 – faszynski

+0

sdf.format(date);給你「08.01.2013」​​。請指定你想用這個'測試'來完成什麼... – Fortega

相關問題