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

  • Christopher Bill

    Christopher

    30 NİSAN 2009
  • kamaniusilelis

    kamaniusilel

    10 HAZİRAN 2011
  • MisterBrightside

    MisterBright

    24 Mart 2006