@Override public void serialize(PointInTime t, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonGenerationException { if (provider.isEnabled(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)) { // Timestamp here actually means an array of values jgen.writeStartArray(); jgen.writeNumber(t.getYear()); if (t.isMonthSet()) jgen.writeNumber(t.getMonth()); if (t.isDateSet()) jgen.writeNumber(t.getDate()); if (t.isHourSet()) jgen.writeNumber(t.getHour()); if (t.isMinuteSet()) jgen.writeNumber(t.getMinute()); if (t.isSecondSet()) jgen.writeNumber(t.getSecond()); if (t.isMillisecondSet()) jgen.writeNumber(t.getMillisecond()); jgen.writeEndArray(); } else { jgen.writeString(t.toString()); } }