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

  • GavinMichaelBooth

    GavinMichael

    26 AĞUSTOS 2006
  • HTC Tutorials

    HTC Tutorial

    21 EYLÜL 2010
  • NicoleGrippo

    NicoleGrippo

    14 Kasım 2006