Configurar Gson para usar varios formatos de fecha

Ahora que cuando quiero decir a gson cómo analizar las fechas que hago:

Gson gson= new GsonBuilder().setDateFormat("yyyy-MM-dd hh:mm").create(); 

Pero también tengo campos con sólo la fecha, y otros sólo con el tiempo, y quiero que ambos se almacenen como objetos de fecha. ¿Cómo puedo hacer esto?

Este serializador / deserializador personalizado puede manejar múltiples formatos. Primero puede intentar analizar en un formato, y si falla, intente con un segundo formato. Esto también debe manejar fechas nulas sin explotar también.

 public class GsonDateDeSerializer implements JsonDeserializer<Date> { ... private SimpleDateFormat format1 = new SimpleDateFormat("MMM dd, yyyy hh:mm:ss a"); private SimpleDateFormat format2 = new SimpleDateFormat("HH:mm:ss"); ... @Override public Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { try { String j = json.getAsJsonPrimitive().getAsString(); return parseDate(j); } catch (ParseException e) { throw new JsonParseException(e.getMessage(), e); } } private Date parseDate(String dateString) throws ParseException { if (dateString != null && dateString.trim().length() > 0) { try { return format1.parse(dateString); } catch (ParseException pe) { return format2.parse(dateString); } } else { return null; } } } 

Espero que ayude, buena suerte con su proyecto.

 GsonBuilder builder = new GsonBuilder(); builder.registerTypeAdapter(Date.class, new GsonDateDeSerializer()); gson = builder.create(); 

Por encima del código se aplicará el nuevo GsonDateDeSerializer creado como GSON Date serializador que fue creado por @reggoodwin

  • GSON. Cómo convertir json objeto a json array?
  • ¿Pueden las anotaciones de Gson y Jackson coexistir en el mismo POJO?
  • Gson Parse Json con matriz con diferentes tipos de objetos
  • Agregar JsonArray a JsonObject generó caracteres de escape (gson)
  • Aparece la tecla "nameValuePairs" extraña cuando se utiliza Gson
  • Hacer una solicitud de GSON utilizando volley
  • Método toJson que hace que la interfaz de usuario se congele
  • El análisis de Json con gson devuelve un objeto nulo
  • Gradle devuelve el paquete no existe
  • ¿Cómo analizar después de JSON usando GSON en android?
  • Ajustar la variable json del mapa a la palabra clave
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.