日期类型(对象或数字)存在问题

时间:2019-05-02 16:00:56

标签: javascript reactjs hibernate spring-mvc jpa

我正在使用react-datepicker处理日期输入,并且当我将表单提交到Spring-Mvc API时,日期字段是如下所示的Javacript日期对象

enter image description here

它在我的spring bean中被映射(并用JPA/Hibernate保存到数据库中)

public class FooBean {

    ...
    public Date dateStart;

使用我的控制器

@PostMapping(value = "/foos")
public Integer saveFoos(@RequestBody FooBean bean) {
    return fooService.saveFoo(bean);
}

,实体中的日期字段是这样映射的

@Temporal(TemporalType.DATE)
@Column(name = "date_os_start")
private Date dateStart;

但是当我尝试从数据库中读取值并将其发送到具有相同FooBean(dto / json)的客户端时,日期值就是这样的数字:

enter image description here

我得到了这个错误

Warning: Failed prop type: Invalid prop `selected` of type `Number` supplied to `DatePicker`, 
expected instance of `Date`.

如何从数据库中获取与JavaScript日期对象相同格式的日期?

1 个答案:

答案 0 :(得分:2)

当日期保存到数据库中时,它似乎已转换为unix时间戳。

在将unix时间戳传递给您正在使用的任何react-datepicker组件之前,您必须将unix时间戳转换回JS date对象。

const date = new Date(1555372800000)