2017-03-03 40 views
-3

我正在使用mysql與java。我需要在數據庫中插入日期,但是它在oracle中很容易,但在Mysql中,我面臨着有點奇怪的問題。我正在使用java.sql.Date,當我試圖插入1990-08-21時,它以3912-01-21的形式保存。我不明白我錯過了什麼。MYSQL日期年份保存爲其他格式

users.setDateOfBirth(new Date(1990-08-21)); 
+1

閱讀文檔:https://開頭的文檔。 oracle.com/javase/7/docs/api/java/sql/Date.html您保存的是1990-8-21 = 1961的結果 – Jens

+0

您是不是要寫逗號而不是連字符?編輯:哦,nvm構造函數已被棄用 – SWdV

+0

也不管它與Oracle/MySQL有關。 – Kayaman

回答

-1

表達1990-08-21被視爲1990的格式 - 8 - 21 = 1961

構造爲日期需要一個長整數(標準基準時間之後的毫秒數,稱爲「時代」,即1970年1月1日,格林威治標準時間00:00:00)。因此,其轉換爲日期(3912-01-21)

您需要使用不同的表達爲一個字符串日期轉換爲java日期:

users.setDateOfBirth(new SimpleDateFormat("yyyy-MM-dd").parse("1990-08-21")); 

對於java.sql.date

users.setDateOfBirth(new java.sql.Date(new SimpleDateFormat("yyyy-MM-dd").parse("1990-08-21"))); 

您還可以使用快速轉換(僅適用於YYYY-MM-DD):

users.setDateOfBirth(java.sql.Date.valueOf("1990-08-21")); 
+0

這將返回java.util.Date –

相關問題