使用JSONSerializer.toJSON返回JSON值的时候时间被分的很细,详细看图

参考了一个例子,在后台处理完之后我是这么返回值的:

JSON json = JSONSerializer.toJSON(new JsonResult<ResumeVO>(0, "页面加载成功!", resumeVO));
return json.toString();

这样子做的话如果返回的实体里含有Date或者Timestamp类型的值,在前端的显示是:

"birthday": {
                "date": 26,
                "hours": 0,
                "seconds": 0,
                "month": 5,
                "timezoneOffset": -480,
                "year": 96,
                "minutes": 0,
                "time": 835718400000,
                "day": 3
            }

有没有人用过这一个工具类的啊,怎么还是让他显示成yyyy-MM-dd形式的?
(@JsonFormat用过了没用,改成字符串类型虽然有用,但是现在改的话要非很大工夫)

牧羊人nacy
浏览 891回答 4
4回答

人到中年有点甜

之前遇到过,网上找了端js代码格式化时间。 //对Date的扩展,将 Date 转化为指定格式的String //月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符, //年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) Date.prototype.Format = function (fmt) { var o = { "M+": this.getMonth() + 1, //月份 "d+": this.getDate(), //日 "H+": this.getHours(), //小时 "m+": this.getMinutes(), //分 "s+": this.getSeconds(), //秒 "q+": Math.floor((this.getMonth() + 3) / 3), //季度 "S": this.getMilliseconds() //毫秒 }; if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); for (var k in o) if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); return fmt; }

HUX布斯

@JsonFormat是可以解决的,应该是你代码的问题。也可以在前端使用控件格式化这个字段的显示。

紫衣仙女

通常来说后端json传时间的话传你这样的时间戳更好吧,然后再由前段转成想要显示的时间字符串。有个类似的问题你可以看一下为什么后台给前台Date是时间戳,而前台给后台则直接是时间字符串?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java