У меня недавно была такая же проблема: сохранять дату как объект Date в MongoDB через MongoJack.
Прежде всего, я использовал версию MongoJack 2.10.0.
И это требует создания собственного сериализатора и десериализатора.
public class Serializer extends JsonSerializer<DateTime> {
@Override
public void serialize(DateTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
gen.writeObject(new Date(value.getMillis()));
}
}
public class Deserializer extends JsonDeserializer<DateTime> {
private static final DateDeserializer DATE_DESERIALIZER = new DateDeserializer();
@Override
public DateTime deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException {
Date date = DATE_DESERIALIZER.deserialize(p, ctxt);
return date == null ? null : new DateTime(date);
}
}
.....
@JsonSerialize(using = EdunavJsonDateTimeSerializer.class)
@JsonDeserialize(using = EdunavJsonDateTimeDeserializer.class)
private DateTime testDate;
public DateTime getTestDate() {
return testDate;
}
public void setTestDate(DateTime testDate) {
this.testDate = testDate;
}
......
В моем случае я преобразовал Date в joda DateTime, чтобы сохранить согласованность с моим кодом, но можно изменить его на другой тип (LocalDateTime, OffsetDateTime и т. Д.)