Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 序列化时间戳转换为秒_Java_Json_Jackson_Timestamp - Fatal编程技术网

Java 序列化时间戳转换为秒

Java 序列化时间戳转换为秒,java,json,jackson,timestamp,Java,Json,Jackson,Timestamp,我正在尝试将时间戳对象序列化为JSON。但是JSON中的对象显示为秒 这是我的POJO的一个片段: @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) public class TimeAndDateDetail{ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd hh.mm.ss") private Timestamp time

我正在尝试将时间戳对象序列化为JSON。但是JSON中的对象显示为秒

这是我的POJO的一个片段:

@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
public class TimeAndDateDetail{

    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd hh.mm.ss")
    private Timestamp timeAndDate;

    public Timestame getTimeAndDate() {return timeAndDate; }

    public void setTimeAndDate(Timestamp timeAndDate){
        this.timeAndDate = timeAndDate;
    }
}
这是我的输出:

{
    "timeAndDate": 1583038800000
}

为什么会这样?我怎样才能让它保持原来的格式呢

您可以使用@JsonFormat注释该字段,以指定时间戳将被序列化的格式。以下是一个例子:

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm")

看起来您正在使用jackson,这是它的默认行为。 最好的方法是禁用相关的对象映射器功能:

objectMapper
    .configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false)

什么是“原始格式”?java.sql.Timestamp实际上没有格式,除非您指的是它的toString实现,它是相对于您机器上的JVM默认时区的。yyyy-MM-dd hh:MM:ss是序列化之前的原始格式。它与Timestamp一起工作吗?还是我必须使用日期?当我尝试这个解决方案时,仍然会遇到同样的问题。@Brodiman事实上我已经找到了这个答案,这建议我对时间戳做同样的操作:我不确定我做错了什么:我添加了你的示例,但仍然得到了错误的输出。@Andronics编辑过。我是将这一行添加到我的主类还是POJO中?编译器正在抱怨无法解决此问题。您正在使用jackson吗?如果是,您应该在创建对象映射器的任何位置添加这一行。例如,如果您使用的是spring,请检查此答案以了解如何注入对象映射器:我不是在创建对象映射器。我正在使用products注释并让系统处理它。我还能把这句话放在什么地方吗?你的框架是什么?这个问题是否相关: