在Spring-MVC中
映射类声明变量前,加入此
注解
class="java" name="code">@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" )
————————————————
原文链接:https://blog.csdn.net/u014227785/article/details/80162824