gpt4 book ai didi

android - 配置 Gson 以使用多种日期格式

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:58:52 25 4
gpt4 key购买 nike

现在,当我想告诉 gson 如何解析日期时,我会这样做:

Gson gson=  new GsonBuilder().setDateFormat("yyyy-MM-dd hh:mm").create();

但我也有只有日期的字段,还有一些只有时间的字段,我希望将两者都存储为 Date 对象。我该怎么做?

最佳答案

这个自定义序列化器/反序列化器可以处理多种格式。您可以先尝试以一种格式进行解析,如果失败则尝试使用第二种格式。这也应该处理空日期而不会爆炸。

public class GsonDateDeSerializer implements JsonDeserializer<Date> {

...

private SimpleDateFormat format1 = new SimpleDateFormat("MMM dd, yyyy hh:mm:ss a");
private SimpleDateFormat format2 = new SimpleDateFormat("HH:mm:ss");

...

@Override
public Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
try {
String j = json.getAsJsonPrimitive().getAsString();
return parseDate(j);
} catch (ParseException e) {
throw new JsonParseException(e.getMessage(), e);
}
}

private Date parseDate(String dateString) throws ParseException {
if (dateString != null && dateString.trim().length() > 0) {
try {
return format1.parse(dateString);
} catch (ParseException pe) {
return format2.parse(dateString);
}
} else {
return null;
}
}

}

希望对您有所帮助,祝您的项目顺利。

关于android - 配置 Gson 以使用多种日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19242940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com