如何让JodaModule通过Jackson获得ZoneUTC()日期格式?

时间:2014-03-28 00:29:46

标签: jackson jodatime jackson-modules

所以我的杰克逊和乔达都支持所有设置......

ext.jackson = [version: '2.3.2']
...
compile "com.fasterxml.jackson.core:jackson-core:${jackson.version}"
compile "com.fasterxml.jackson.core:jackson-databind:${jackson.version}"
compile "com.fasterxml.jackson.core:jackson-annotations:${jackson.version}"
compile "com.fasterxml.jackson.datatype:jackson-datatype-joda:${jackson.version}"

我的OjbectMapper配置为使用JodaModule()来格式化java.util.Dates

private static final ObjectMapper mapper = new ObjectMapper();
static {
    // JodaModule gets Dates handled as ISO-8601 strings
    JodaModule jodaModule = new JodaModule();
    mapper.registerModule( jodaModule );
    mapper.configure( SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false );
}

但我无法弄清楚如何让JodaModlue在我的POJO中格式化java.util.Date事件,例如“2014-02-07T21:29:19.032Z”而不是“2014-02-07T21:29 :19.032 + 0000" 。当我在Joda中“独立”时,咒语是ISODateTimeFormat.dateTime()。withZoneUTC()。如何将DateTimeFormatter插入JodaModule()我将其推入ObjectMapper?

1 个答案:

答案 0 :(得分:0)

理论上,使用注释@JsonFormat(pattern="..."),但我认为这种改进(使Joda模块数据类型识别并使用@JsonFormat)仅包含在2.4.0中。但是一旦发生这种情况就可以使用(它已经适用于JDK日期/时间类型,FWIW)。

但您可能想要为Joda模块提交功能请求(在github跟踪器上发布),专门为Joda模块请求一个简单的功能,以便优化"输出UTZ时区。