2013-07-16 64 views
1

將日期插入到數據庫時,我收到了一些奇怪的行爲。插入日期在數據庫中的Java怪異行爲

數據庫使用date字段,我的輸入是String,所以我將它轉換爲java.util.Date並隨後插入它。

轉換代碼:

private Date convertToDate(String input) { 
    try { 
     return new SimpleDateFormat("dd-MM-YY", Locale.ENGLISH).parse(input); 
    } catch (ParseException ex) { 
     Logger.getLogger(OutputProcessor.class.getName()).log(Level.SEVERE, null, ex); 
     return null; 
    } 
} 

input = "19-9-2011"當它插入2010-12-26到數據庫中。另外,當我錯誤地將語言環境設置爲法語時,它會插入2011-01-03,以使其完全沒有任何意義。

而另一後續問題:我的程序將不得不應對所有可能的格式的日期,我可以插入誰最有可能的日期,雖然用戶的語言環境。我將如何繼續這樣做?

問候。

回答

5

年由小瓶蓋y,不Y表示:

return new SimpleDateFormat("dd-MM-yyyy", Locale.ENGLISH).parse(input); 

Y(大帽)是週年。

0

如果要發送輸入字符串作爲19-9-2011格式應該是dd-MM-yyyy和 通2位數字爲月09而不是9

0

使用java.sql.Date,如果你與數據庫交互的日期。 檢查日期格式

最佳選擇是使用時間戳,而不是日期。將它存儲很久(timeinmillis)。