Java中对于时间格式的处理(@DateTimeFormat)

本文介绍如何使用@DateTimeFormat注解解决Spring MVC中前后端时间格式不一致的问题,并提供了一段JavaScript代码帮助前端正确显示时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Spring-MVC中
映射类声明变量前,加入此注解

@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss" )

原因是:页面将数据传到后台,是以字符串的形式。所以时间格式会出错。加上此注解,后台可解析时间格式的字符串。但是后台传到前台,前台没办法解析。需要做如下操作。

Date.prototype.format = function (format) { 
    var o = {  
        "M+": this.getMonth() + 1, // month  
        "d+": this.getDate(), // day  
        "h+": this.getHours(), // hour  
        "m+": this.getMinutes(), // minute  
        "s+": this.getSeconds(), // second  
        "q+": Math.floor((this.getMonth() + 3) / 3), // quarter  
        "S": this.getMilliseconds()  
        // millisecond  
    }; 
    if (/(y+)/.test(format))  
        format = format.replace(RegExp.$1, (this.getFullYear() + "")  
            .substr(4 - RegExp.$1.length));  
    for (var k in o)  
        if (new RegExp("(" + k + ")").test(format))  
            format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));  
    return format;  
}

前台调用方法:

var dt= new Date(data);  
return dt.format("yyyy-MM-dd hh:mm:ss");

总结:第一种做法:是用String 接收数据库中的时间格式,这样做,时间会在最后出现.0的情况。还做了字符串的截取。很麻烦。第二种做法:在sql中,直接将sql转成字符串date_format()函数。可是前台时间参数传不到后台。第三种使用@DateTimeFormat注解。可以解决以上问题。注意括号中的大小写。

(pattern = "yyyy-MM-dd HH:mm:ss" )
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值