SORU
29 Temmuz 2011, Cuma


GSON - Tarih biçimi

Gson çıktı özel bir tarih biçimi için çalışıyorum, ama .setDateFormat(DateFormat.FULL) .registerTypeAdapter(Date.class, new DateSerializer()) ile aynı iş gibi görünmüyor.

Nesne" ve onun bir şekilde yazdırın. "Tarih hakkında Gson umurunda değil gibi.

Bunu nasıl değiştirebilirim?

Teşekkürler

DÜZENLEME:

@Entity
public class AdviceSheet {
  public Date lastModif;
[...]
}

public void method {
   Gson gson = new GsonBuilder().setDateFormat(DateFormat.LONG).create();
   System.out.println(gson.toJson(adviceSheet);
}

Ben her zaman java.util.Date; setDateFormat() çalışmıyor kullanın :(

CEVAP
29 Temmuz 2011, Cuma


Parça veya kullanım tabanlı Dize biçimlendirme hem de tarih ve saat biçimlerini tanımlamak gerekir gibi görünüyor. Örneğin:

Gson gson = new GsonBuilder()
   .setDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz").create();

ya

Gson gson = new GsonBuilder()
   .setDateFormat(DateFormat.FULL, DateFormat.FULL).create();

Bu şekilde olması gerek.

Serializers . DÜZENLEME:

Hale getirilmesini olamaz zaman damgaları üretmek inanıyorum, ama deserializer-çift/bu seri hale getirici iş gibi görünüyor

JsonSerializer<Date> ser = new JsonSerializer<Date>() {
  @Override
  public JsonElement serialize(Date src, Type typeOfSrc, JsonSerializationContext 
             context) {
    return src == null ? null : new JsonPrimitive(src.getTime());
  }
};

JsonDeserializer<Date> deser = new JsonDeserializer<Date>() {
  @Override
  public Date deserialize(JsonElement json, Type typeOfT,
       JsonDeserializationContext context) throws JsonParseException {
    return json == null ? null : new Date(json.getAsLong());
  }
};

Gson gson = new GsonBuilder()
   .registerTypeAdapter(Date.class, ser)
   .registerTypeAdapter(Date.class, deser).create();

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jon Reed

    Jon Reed

    14 AĞUSTOS 2006
  • Tinkernut

    Tinkernut

    28 Aralık 2006
  • YouChewBu

    YouChewBu

    26 Ocak 2009