1

我正在維護在幾年前使用JPARepository訪問數據庫時編寫的代碼。數據庫中的creationDate列定義爲datetime。如何強制JPARepository在yyyy-MM-dd中顯示時間戳HH:mm:ss.000格式

代碼的舊版本將從creationDate中提取值並將其顯示爲「creationDate」:「2015-03-27T14:44:05.897 + 0000」。我不得不修改數據庫中的幾個表格。在這個過程中,我將Spring Boot升級到版本1.4.3,這也帶來了更新版本的Hibernate。

現在,當我運行代碼(它沒有改變任何日期),JSON現在顯示列爲「creationDate」:1427467445897。這打破了調用我的Web服務的代碼。

我的代碼有:

@Column(name="CreationDate", nullable=true) 
private java.sql.Timestamp creationDate; 

,並沒有對getter函數沒有註解。我必須做些什麼才能讓JSON日期再次顯示爲「2015-03-27T14:44:05.897 + 0000」?

回答

0

我懷疑這與彈簧數據無關,而與Jackson有關,因爲存儲庫不顯示任何東西。

@Column(name="CreationDate", nullable=true) 
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSZ") 
private java.sql.Timestamp creationDate; 

here得到正確的模式。

0

我發現了一個同類解決方案:

@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd'T'HH:mm:ss.SSSZ", timezone="UTC") 
public java.sql.Timestamp getCreationDate() { 
    return creationDate; 
} 

我不知道這是否註釋可以在任何數據聲明或吸氣功能,但它工作的getter函數。

相關問題