欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

关于解决Spring中格式化日期输入输出问题

程序员文章站 2022-05-05 14:49:06
...

最近在把以前的一个项目重构,想起来以前在Spring中关于日期的格式化输入输出一直无法解决的问题;趁着最近有空把这个问题解决一下;

输出:从spring格式化输出Date类型的日期只要再get方法上添上注解即可;引用com.fasterxml.jackson.annotation的

 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
输入:在前端使用JSON.stringify来格式化数据会导致日期被减八小时,因为JSON.stringify对日期的格式化时会转化为国际时间,因此需要修改JSON.stringify对于日期的格式化;使用下面这段代码可以对时间格式化输出【该代码从其他博客转载】

/**
 * 日期转换
 * @param date
 * @param fmt
 * @returns {*}
 */
function dateFormat(date, fmt) {
    if (null == date || undefined == date) return '';
    var o = {
        "M+": date.getMonth() + 1, //月份
        "d+": date.getDate(), //日
        "h+": date.getHours(), //小时
        "m+": date.getMinutes(), //分
        "s+": date.getSeconds(), //秒
        "S": date.getMilliseconds() //毫秒
    };
    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.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;
}
/**
 * 格式化JSON.stringify 如果不格式化的是日期是utc时区
 * @returns {*}
 */
Date.prototype.toJSON = function () {
    return dateFormat(this, 'yyyy-MM-dd hh:mm:ss')
}

相关标签: 日期转换