2016-05-04 68 views
0

我想知道爲什麼我的日期存儲在我的SQL數據庫(定義爲date列)的格式爲MM/dd/yyyy但是,當我在我的Java應用程序中將它作爲String對象檢索時,它被格式化爲YYYY-MM-DD數據庫中的日期返回格式不同 - 爲什麼?

@Column(name="date") 
String date; 

我知道我可以用下面的方法

Date inputDate = new SimpleDateFormat("yyyy-MM-dd").parse(user.getDate()); 
String outputDate = new SimpleDateFormat("MM/dd/yyyy").format(inputDate); 

手動重新格式化,但有什麼辦法來防止重新格式化了蝙蝠的權利? @DateTimeFormat註釋能夠執行我指定的任何格式嗎? (我試過這個沒有任何運氣)。

任何輸入表示讚賞,謝謝?

+1

一個日期是它沒有格式的日期,你可能當你把它映射到一個字符串,例如獲得SQL表示「2016年5月4日7時33分00秒' –

+2

把數據作爲'String'放在一個地方而'DATE'放在另一個地方不是一個好主意。挑一個,然後你會有明智的解決方案。 – Kayaman

回答

2

日期顯示格式取決於用於編寫SQL查詢的工具或IDE,當我們在Java應用程序中檢索日期字段時,它將僅返回yyyy-MM-dd格式。

如果你想有一個特定的日期格式,你可以使用數據庫特定的方法來格式化日期值象下面這樣:

對於MySQL,你可以使用DATE_FORMAT功能。

Ex: select DATE_FORMAT(date_field, 'mm/dd/yyyy') from table_name; 

參考:MYSQL DATE FORMATTING

對於MSSQL:

Ex: select CONVERT(VARCHAR(10), date_filed, 101) from table_name; 

參考:MSSQL DATE FORMATTING

對於Oracle您可以使用TO_CHAR功能。

Ex: select TO_CHAR(date_field, 'mm/dd/yyyy') from table_name; 

參考:ORACLE DATE FORMATTING

相關問題