In order to override the default date formatting strategy of Jakson following are the step to follow:
- Extend
JsonSerializer
to create a new class for handling date formatting - Override
serialize(Date date, JsonGenerator gen, SerializerProvider provider)
function to format date in your desired format and write it back to generator instance (gen) - Annotate your date getter object to use your extended json serializer using
@JsonSerialize(using = CustomDateSerializer.class)
Code:
//CustomDateSerializer class
public class CustomDateSerializer extends JsonSerializer<Date> {
@Override
public void serialize(Date value, JsonGenerator gen, SerializerProvider arg2) throws
IOException, JsonProcessingException {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String formattedDate = formatter.format(value);
gen.writeString(formattedDate);
}
}
//date getter method
@JsonSerialize(using = CustomDateSerializer.class)
public Date getDate() {
return date;
}
Source: http://blog.seyfi.net/2010/03/how-to-control-date-formatting-when.html