仅设置所需的DateFormat是不够的。
您需要定义 com.google.gson.JsonDeserializer 的实现。对于前。
import java.lang.reflect.Type;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.TimeZone;import com.google.gson.JsonDeserializationContext;import com.google.gson.JsonDeserializer;import com.google.gson.JsonElement;import com.google.gson.JsonParseException;public class DateDeserializer implements JsonDeserializer<Date> { @Override public Date deserialize(JsonElement element, Type arg1, JsonDeserializationContext arg2) throws JsonParseException { String date = element.getAsString(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); format.setTimeZone(TimeZone.getTimeZone("GMT")); try { return format.parse(date); } catch (ParseException exp) { System.err.println("Failed to parse Date:", exp); return null; } }}
然后注册上面的反序列化器:
GsonBuilder gsonBuilder = new GsonBuilder();gsonBuilder.registerTypeAdapter(Date.class, new DateDeserializer());
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)