Gson: establece el formato de fecha para la marca de tiempo y la zona horaria

¿Qué patrón debo utilizar para el formato de fecha 1418805300000-0100? (Timestamp y zona horaria)

GsonBuilder().setDateFormat("?????????????-Z") 

Solución:

  1. Crear nuevo GSON con adaptadores

     private static Gson createGson(){ return new GsonBuilder().disableHtmlEscaping() .registerTypeHierarchyAdapter(Date.class, new DateTimeSerializer()) .registerTypeHierarchyAdapter(Date.class, new DateTimeDeserializer()) .create(); } public static MyClass fromJson(String json) { return createGson().fromJson(json, MyClass.class); } public String toJson() { return createGson().toJson(this); } 
  2. JSON Serializer

     private static class DateTimeSerializer implements JsonSerializer<Date> { @Override public JsonElement serialize(Date src, Type typeOfSrc, JsonSerializationContext context) { // hodgie code return new JsonPrimitive(src.getTime() + new SimpleDateFormat("Z").format(src)); } } 
  3. Deserializador

     private static class DateTimeDeserializer implements JsonDeserializer<Date> { @Override public Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { // hodgie code return new Date(Long.valueOf((json).getAsString().substring(0, 13))); } } 

GsonBuilder#setDateFormat(String) utiliza la String proporcionada como argumento para crear instancias de SimpleDateFormat . SimpleDateFormat no proporciona ningún patrón para generar una marca de tiempo. No podrá lograr lo que desea con setDateFormat . Un Custom TypeAdapter parece apropiado.

  • Manejo de errores personalizados con Retrofit cuando se ofusca usando proguard da java.lang.reflect.UndeclaredThrowableException
  • Reenvío de puertos Android
  • Ahorro de grandes arreglos cortos android
  • WifiP2pManager devolver estado BUSY en CreateGroup
  • Exportación de una base de datos SQLite a un archivo XML en Android
  • Android: onListItemClick en la actividad
  • Instanciar con una clase Pool <T> a través de la interfaz PoolObjectFactory
  • Android: efecto saltar de la barra de estado
  • Cómo hacer espacio entre spannable cadena en Android?
  • ¿Cómo separar fragmentos a diferentes archivos en android studio?
  • El depurador de Android oculta una variable local
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.