我有点困惑。我需要将一个Object序列化为一个json String。我使用bin
作为库。
我的Pojo课程Jackson
有一个属性Stage
,其fromDate
。
util.date
在序列化之前,fromDate具有以下值:public class Stage {
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd.MM.yyyy", timezone="UTC+1")
private Date fromDate;
...
。
我的序列化方法如下所示:
Wed May 11 00:00:00 CEST 2016
但序列化我的Object之后,json String中的dateFrom具有以下值:
public static String serialize(Stages stages) throws JsonProcessingException {
ObjectMapper objectMapper = new ObjectMapper();
String s = objectMapper.writeValueAsString(stages);
return s;
}
。所以日期错了。
我使用了..."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;
}
我错了什么?
答案 0 :(得分:1)
我认为这只是另一个时区问题。序列化日期看起来像是UTC(?),所以它实际上是正确的,你看到10.05,因为2016-11-05 00:00 UTC + 1真的是2016-10 -05 23:00 UTC ..
您可能应该尝试调整您读取此序列化值的代码,以考虑日期序列化的时区。