使用Jackson ObjectMapper的oData日期格式

时间:2014-11-10 10:52:18

标签: java date jackson

我希望jackson将日期解析为以下格式:

/Date(1413072000000)/

我如何使用Jackson ObjectMapper做到这一点?我尝试了setDateFormat和SimpleDateFormat,但在该方法中,我无法设置毫秒出现。

1 个答案:

答案 0 :(得分:1)

您可以定义自己的DateFormat,如下所示:

public class MyDateFormat extends DateFormat {

    @Override
    public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition) {
        return toAppendTo.append(String.format("/Date(%d)/", date.getTime()));
    }

    @Override
    public Date parse(String source, ParsePosition pos) {
        throw new UnsupportedOperationException();
    }

    @Override
    public Object clone() {
        return new MyDateFormat();
    }
}

使用以下命令将MyDateFormat的实例设置为ObjectMapper:

mapper.setDateFormat(new MyDateFormat());

在MyDateFormat类中添加了clone()覆盖,因为在并发问题的情况下,Jackson需要克隆我们的格式。