如何用Gson解析两种日期格式

时间:2017-09-26 12:35:18

标签: android date gson

我从服务器获取此JSON

{
      "Id": 94,
      "RegisteredDate": "2013-09-29T18:46:19Z",
      "EndDate": "2018-08-14T00:00:00"
}

我尝试使用以下代码解析它:

Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss").create(); 
JsonParser parser = new JsonParser();

JsonObject jsonObject = parser.parse(response)
                            .getAsJsonObject();

ContractData contractData = gson.fromJson(jsonObject, ContractData.class);

但Gson无法解析Json中的RegisteredDate,因此我的模型中的registeredDate为null,但似乎正确解析了endDate。

有没有办法用Gson正确解析这两个日期?

2 个答案:

答案 0 :(得分:3)

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

A.CallTo(() => repository.Create(A<PersonModel>._)).ReturnsLazily((PersonModel p) => p);

希望这对你有用。

答案 1 :(得分:1)

尝试

=IF(ISNUMBER(MATCH(F2,Sheet1!F:F,0)),"Yes","No")