我使用的是带有mongoDB的Spring boot 2。目前,使用jackson序列化,从API响应序列化到毫秒的日期。
{
"main_reg_dt": 1515485462433
}
在stackoverflow上搜索后,将此选项添加到应用程序的配置applcation.yaml
中
WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS: true
但是结果和以前一样。
这就是模型的实现方式
@JsonInclude(JsonInclude.Include.NON_DEFAULT)
@QueryEntity
public class Card {
@Id
@JsonProperty("id")
@Field("_id")
String id;
@JsonProperty("main_reg_dt")
@Field("main_reg_dt")
Date registeredDateTime;
}
如何使用mongoDB在Spring boot2中将日期转换为纪元(unix时间戳)?
发布于 2018-05-31 07:50:39
我找到了一种改变序列化方法的方法。
首先,创建自定义序列化程序
public class CustomDateSerializer extends JsonSerializer {
@Override
public void serialize(Object o, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
long formattedDate = ((Date) o).getTime() / 1000;
jsonGenerator.writeString(String.valueOf(formattedDate));
}
}
然后,添加注释以使用定制的序列化程序
@JsonProperty("main_reg_dt")
@Field("main_reg_dt")
@JsonSerialize(using = CustomDateSerializer.class)
Date registeredDateTime;
此后,响应中的日期将被序列化为unix时间戳。
https://stackoverflow.com/questions/50583876
复制相似问题