在使用Gson将对象转化成json格式的字符串的时候,如果对象中包含日期格式数据,json会用默认的格式解析,转化后的日期格式可能不是原来想要的。
比如:
<span style="font-family:KaiTi_GB2312;font-size:24px;">Gson gson=new Gson();
Order order=new Order();
order.setEndTime(new Date(new java.util.Date().getTime()));
String dataString=gson.toJson(order);
System.out.println(dataString);
System.out.println(new Date(new java.util.Date().getTime()));</span>
那么解决方法就是在创建Gson的时候指定日期格式:
<span style="font-family:KaiTi_GB2312;font-size:24px;">Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd").create();</span>
传数据的日期格式是解决了,但是在解析时候不同样那样指定日期格式的创建Gson对象,就会报 com.google.gson.JsonSyntaxException: java.text.ParseException 异常信息,说Gson解析不了那种格式的数据。
好了,总结一下:在用Gson将对象转换成json格式的数据时候,如果对象含有日期类型,可以在创建Gson时候指定日期格式,同样,将json数据转换成对象时候同样要指定日期类型格式。这样Gson解析日期才不会出问题。
欢迎指教