繁体   English   中英

杰克逊时间戳映射错误?

[英]jackson timestamp mapping bug?

我从移动客户端获取数据作为json文件。

但是,如果仅是时间戳记,则通常无法接收数据。 最后,截断的3位数字。

所以日期是完全错误的。

这是我的资料。

json档案

{
  "startPhotoAddress": "Great Ocean Road, Hordern Vale",
  "createTimeStamp": "1356998400",
  "startPhotoTimeStamp": "1356998430"
}

在控制器中

@RequestMapping(value = "/moment", method = RequestMethod.POST, headers = "Accept=application/json")
public @ResponseBody JsonNode setMomentJson(HttpServletRequest request, @RequestBody Moment moment){

在模型中

import java.sql.Timestamp;

public class Moment{
    private Timestamp createTimeStamp;

    public Timestamp getCreateTimeStamp() {
        return createTimeStamp;
    }

    public void setCreateTimeStamp(Timestamp createTimeStamp) {
        this.createTimeStamp = createTimeStamp;
    }
}

我得到createTimeStamp:1970-01-17 01:56:38.4

它仅使用createTimeStamp的1356998400中的1356998。

如果收到字符串,则不成问题。

拜托,这是什么问题? 在此先感谢您的帮助。

如果您以秒而不是毫秒为单位接收时间戳值,则可以使setter接受长型并将输入值乘以1000,然后通过调用构造函数来创建Timestamp实例。 像这样:

public class Moment{
    private Timestamp createTimeStamp;

    public Timestamp getCreateTimeStamp() {
        return createTimeStamp;
    }

    public void setCreateTimeStamp(long createTimeStamp) {
        this.createTimeStamp = new Timestamp(createTimeStamp * 1000);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM