1、后端 => 前端
由下述代码可知:后端java的Date类型数据传递到前端,输出格式为 yy-mm-dd hh-mm-ss,可以直接把它作为参数放进 js 的 new Date( ) 里,得到的就是正确的js格式的Date:
const date = new Date(this.userInfo.birthday)
const date01 = new Date(this.userInfo.createTime)
console.log(this.userInfo.createTime)
console.log(this.userInfo.birthday)
console.log(date)
console.log(date01)
--------------------------------------------------------------------------------
java后端未经处理的date类型(MySql中为datetime): 2021/03/07 22:58:44
java后端未经处理的date类型(MySql中为date): 2013/07/12 00:00:00
java后端未经处理的date类型(MySql中为datetime)作为构造函数的参数:Fri Jul 12 2013 00:00:00 GMT+0800 (中国标准时间)
java后端未经处理的date类型(MySql中为date)的时间戳作为构造函数的参数:Sun Mar 07 2021 22:58:44 GMT+0800 (中国标准时间)
一些关于js中Date对象构造函数的参数类型如下述代码所示,当然还有没写上去的时间戳:
const date01 = new Date(2021, 3, 20)
const date02 = new Date('2021-03-05')
const date03 = new Date('2021-3-5')
const date04 = new Date('2021/3/5')
const date05 = new Date('2021/03/05')
const date06 = new Date('2021/03/05 01:01:01')
const date07 = new Date('2021-03-05 1:1:1')
--------------------------------------------------------------------------------
date01 (2021, 3, 20) : Tue Apr 20 2021 00:00:00 GMT+0800 (中国标准时间)
date02 ('2021-03-05') : Fri Mar 05 2021 08:00:00 GMT+0800 (中国标准时间)
date03 ('2021-3-5') : Fri Mar 05 2021 00:00:00 GMT+0800 (中国标准时间)
date04 ('2021/3/5') : Fri Mar 05 2021 00:00:00 GMT+0800 (中国标准时间)
date05 ('2021/03/05') : Fri Mar 05 2021 00:00:00 GMT+0800 (中国标准时间)
date06 ('2021/03/05 01:01:01') : Fri Mar 05 2021 01:01:01 GMT+0800 (中国标准时间)
date07 ('2021-03-05 1:1:1') : Fri Mar 05 2021 01:01:01 GMT+0800 (中国标准时间)
2、前端 => 后端
前端Date类型传递到后端我用的是传递时间戳的方法,后端Date类型的参数可以成功接收。
前端输出的requst请求中传递了时间戳:
java后端成功接收并输出
//java控制台输出
//User(...... , birthday=Fri Jul 12 00:00:00 CST 2013, ......)
因为js和java的Date的规范不同,直接传递是不行的。目前只想到了时间戳的办法,大家如果有别的好办法请在评论区指教我下,非常感谢。