为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

牧羊人nacy 2019-01-18 01:00:46
参考了一个例子,在后台处理完之后我是这么返回值的: 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用过了没用,改成字符串类型虽然有用,但是现在改的话要非很大工夫)
查看完整描述

4 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

之前遇到过,网上找了端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;  
    }
查看完整回答
反对 回复 2019-02-12
?
HUX布斯

TA贡献1876条经验 获得超6个赞

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

查看完整回答
反对 回复 2019-02-12
?
紫衣仙女

TA贡献1839条经验 获得超15个赞

通常来说后端json传时间的话传你这样的时间戳更好吧,然后再由前段转成想要显示的时间字符串。
有个类似的问题你可以看一下为什么后台给前台Date是时间戳,而前台给后台则直接是时间字符串?

查看完整回答
反对 回复 2019-02-12
  • 4 回答
  • 0 关注
  • 890 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信