gson无法使用GsonBuilder.setDateFormat(“ yyyy-MM-dd'T'HH:mm:ss.SSSZ”)进行解析

gson无法使用GsonBuilder.setDateFormat(“ yyyy-MM-dd'T'HH:mm:ss.SSSZ”)进行解析,第1张

gson无法使用GsonBuilder.setDateFormat(“ yyyy-MM-dd'T'HH:mm:ss.SSSZ”)进行解析

设置所需的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());


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5008361.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存