2017-08-28 32 views
0

我使用Oracle數據庫,列類型是:DATE 我映射此列是這樣的:傑克遜怪異的時間戳值給出錯誤的一年

private Date dateCreate; 

@Column(name = "DATE_CREATE", nullable = false) 
public Date getDateCreate() { 
    return dateCreate; 
} 

public void setDateCreate(Date dateCreate) { 
    this.dateCreate = dateCreate; 
} 

我什麼也不做,但只是返回該值的前端。

在我的前端我嘗試這個時間戳轉換了一下對象:

let momentDate = moment.unix(dateCreate).format("MM/DD/YYYY"); 

我得到'12/13/49626' 我應該得到'08/28/2017'

當我使用一個服務像this one並粘貼我的時間戳( 1503908063000),它給了我正確的日期。

我不認爲,從時間戳中刪去最後三個數字是個好主意。有其他解決方法嗎?

我使用Hibernate作爲ORM提供者,Jackson使用JSON(某些RESTEasy服務)。

回答

2

您不必通過傳遞代表數的整數值,使用moment.unix,它分析自Unix紀元,只需使用moment(Number)

new Date(Number)類似,您可以創建一個瞬間毫秒自Unix紀元以來(1970年1月1日上午12點UTC)。

這裏活樣本:

let dateCreate = 1503908063000; 
 
let ggg = moment(dateCreate).format("MM/DD/YYYY"); 
 
console.log(ggg);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>

+1

我又做了它複雜的方式。 Thx爲答案。 –