我希望jackson将日期解析为以下格式:
/Date(1413072000000)/
我如何使用Jackson ObjectMapper做到这一点?我尝试了setDateFormat和SimpleDateFormat,但在该方法中,我无法设置毫秒出现。
答案 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需要克隆我们的格式。