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ÅŸ:

Tarih biçimi ve Windows toplu iş komut...
Bir XML dosyasında Tarih/Saat kullanma...
MVC yanlış tarih biçimi ile DateTime b...
Tarih biçimi Silverlight XAML/Saat...
Okuma colClasses bağımsız değişkeni iç...