我使用Oracle DB,列类型是: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 服务)。
最佳答案
您不必使用moment.unix
,解析自 Unix 纪元以来的秒,只需使用 moment(Number)
那个
Similar to
new Date(Number)
, you can create a moment by passing an integer value representing the number of milliseconds since the Unix Epoch (Jan 1 1970 12AM 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>
关于java - jackson 在 momentJS 中使用的奇怪时间戳值给出了错误的年份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45918895/