【发布时间】:2018-01-01 16:55:03
【问题描述】:
我有一个类,有以下内容
class MyClass {
private Date datetime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2018-01-01 11:32:15");
private Time time = new Time(System.currentTimeMillis());
private Date date = new Date(System.currentTimeMillis());
// getters and setters
}
Gson
Gson gson = new Gson();
System.out.println(gson.toJson(myClass));
Gson gsonBuilder = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();
System.out.println(gsonBuilder.toJson(myClass));
我明白了
{"datetime":"Jan 1, 2018 11:32:15 AM","time":"04:51:23 PM","date":"Jan 1, 2018 4:51:23 PM"}
{"datetime":"2018-01-01 11:32:15","time":"04:51:23 PM","date":"2018-01-01 16:51:23"}
杰克逊
ObjectMapper mapper = new ObjectMapper();
System.out.println(mapper.writeValueAsString(myClass));
mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
System.out.println(mapper.writeValueAsString(myClass));
我明白了
{"datetime":1514806335000,"time":"17:01:18","date":1514826078776}
{"datetime":"2018-01-01T11:32:15.000+0000","time":"17:13:52","date":"2018-01-01T17:13:52.224+0000"}
我怎样才能得到
{"datetime":"2018-01-01 11:32:15","time":"16:51:23","date":"2018-01-01"}
我没有绑定任何库,所以如果有更合适的 JSON 库可以完成这项工作,请发表评论。
【问题讨论】:
-
有点笨的办法,用gson写自己的DateWrapper并覆盖toString()。