private java.sql.Date parseDate(JsonParser parser) throws IOException {
    java.sql.Date jsd = null;
    if (JsonToken.VALUE_NUMBER_INT.equals(parser.getCurrentToken())) {
      // DateWritable#daysToMillis adjusts the numerical/epoch time
      // to midnight in the local time zone.	See HIVE-12192.
      // Attempt to compensate, when date provided as epoch, which is unambiguously UTC.
      long epoch = parser.getLongValue();
      jsd = new java.sql.Date(epoch - tz.getOffset(epoch));
    } else
      try {
        long epoch = parseTime(parser.getText(), "yyyy-MM-dd");
        jsd = new java.sql.Date(epoch + 43200000);  // midday rather than midnight
      } catch (java.text.ParseException e) {
        // null
      }
    return jsd;
  }
Send to the generator, the value of the cell, using column type

@param value The attribute value as the object given by Hive
@param fieldIndex column index of field in row
@param jsonGen JsonGenerator
@throws JsonProcessingException
@throws IOException
ql/src/java/org/apache/hadoop/hive/ql/udf/esri/serde/BaseJsonSerDe.java