使用GSON反序列化错误地转换java.sql.Date
我使用GSON将JSON字符串反序列化为java对象。JSON字符串中的日期格式为:使用GSON反序列化错误地转换java.sql.Date,java,json,gson,Java,Json,Gson,我使用GSON将JSON字符串反序列化为java对象。JSON字符串中的日期格式为: yyyy-mm-dd 当日期被读入我的java对象中的java.sql.date字段时,月份总是以01或一月结束!很奇怪 以下是JSON字符串和GSON反序列化的代码: public static void main(String[] args) { String jsonString = "[{\"date\":\"2015-02-14\"},{\"date\":\"2015-03-15\"},{\
yyyy-mm-dd
当日期被读入我的java对象中的java.sql.date字段时,月份总是以01或一月结束!很奇怪
以下是JSON字符串和GSON反序列化的代码:
public static void main(String[] args)
{
String jsonString = "[{\"date\":\"2015-02-14\"},{\"date\":\"2015-03-15\"},{\"date\":\"2015-04-16\"}]";
Type type = new TypeToken<List<TestObject>>(){}.getType();
Gson gsonReceiver = new GsonBuilder().setDateFormat("yyyy-mm-dd").create();
List<TestObject> objectList = gsonReceiver.fromJson(jsonString, type);
for(int i=0; i < objectList.size(); i++) {
System.out.println("objectList[" + i + "] = " + objectList.get(i).toString());
}
}
}
如果运行这段代码,新对象中的日期将打印为:
objectList[0] = TestObject [date=2015-01-14]
objectList[1] = TestObject [date=2015-01-15]
objectList[2] = TestObject [date=2015-01-16]
这很奇怪
我想我已经设置了我应该设置的日期格式-有人知道这里出了什么问题吗?正确的格式是
yyyy-MM-dd
mm
停留几分钟。不是几个月
下面是javadoc,它解释了可以在日期格式函数中使用的每个字母:
实际上,GSonBuilder
使用了与SimpleDateFormat
相同的约定:
请注意,此模式必须遵守SimpleDataFormat类提供的约定。有关有效日期和时间模式的更多信息,请参阅SimpleDataFormat中的文档
正确的格式是
yyyy-MM-dd
mm
停留几分钟。不是几个月
下面是javadoc,它解释了可以在日期格式函数中使用的每个字母:
实际上,GSonBuilder
使用了与SimpleDateFormat
相同的约定:
请注意,此模式必须遵守SimpleDataFormat类提供的约定。有关有效日期和时间模式的更多信息,请参阅SimpleDataFormat中的文档
啊!谢谢戴维德,这让我发疯了!Tom如果您觉得答案有用且正确,您可以向上投票,并使用绿色标志选择正确答案。非常感谢。只要等12分钟就行了!啊!谢谢戴维德,这让我发疯了!Tom如果您觉得答案有用且正确,您可以向上投票,并使用绿色标志选择正确答案。非常感谢。只要等12分钟就行了!