【发布时间】:2016-01-27 10:29:19
【问题描述】:
我有点困惑。我需要将一个对象序列化为一个 json 字符串。我使用Jackson 作为库。
我的 Pojo 类 Stage 有一个属性 fromDate 和它的一个 util.date。
public class Stage {
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd.MM.yyyy", timezone="UTC+1")
private Date fromDate;
...
在序列化之前,fromDate 有这个值:Wed May 11 00:00:00 CEST 2016。
我的序列化方法如下所示:
public static String serialize(Stages stages) throws JsonProcessingException {
ObjectMapper objectMapper = new ObjectMapper();
String s = objectMapper.writeValueAsString(stages);
return s;
}
但是在序列化我的对象之后,json 字符串中的 dateFrom 具有这个值:
..."fromDate":"10.05.2016"... 。所以日期是错误的。
我使用了@JsonFormat 的模式,也尝试了ObjectMapper 配置。
public static String serialize(Stages stages) throws JsonProcessingException {
ObjectMapper objectMapper = new ObjectMapper();
SimpleDateFormat dateFormat = new SimpleDateFormat(Util.SDF_dd_mm_yyyy);
objectMapper.setDateFormat(dateFormat);
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC+1"));
String s = objectMapper.writeValueAsString(stages);
return s;
}
但日期不是我预期的:..."fromDate":"11.05.2016"...
我做错了什么?
【问题讨论】:
标签: java json serialization jackson