前后端日期date传递格式转换
记录一次错误我在vue中el时间控件,遇到向后端传递的json时间转换错误,按照有的博主在后端转换中加'T',这样可以接收但是前端就显示带T这个字符了!!!@JsonFormat(pattern = "yyyy-MM-dd 'T' HH:mm:ss")其实不需要在后端加'T',应该在前端的vue el时间控件加入value-format="yyyy-MM-dd HH:mm:ss"<el-da
目录
后端向前端传递date前端接收为2022-05-20T22:24:41.000+08:00格式
oracle中将select查询出的SYSDATE时间格式化
JSON parse error: Cannot deserialize value of type `java.util.Date` from String “2022-05-07T06:46:31
前端向后端传递date后端接收带有"T"间隔符:
我在vue中el时间控件,遇到向后端传递的json时间转换错误,按照有的博主在后端转换中加'T',这样可以接收但是前端就显示带T这个字符了!!!
@JsonFormat(pattern = "yyyy-MM-dd 'T' HH:mm:ss")
其实不需要在后端加'T',应该在前端的vue el时间控件加入value-format="yyyy-MM-dd HH:mm:ss"
<el-date-picker
v-model="form.birthday"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择生日">
</el-date-picker>
这样就正常了
el-table中显示日期数据,不加:formatter="dateFormat"就显示undefined
后端向前端传递date前端接收为2022-05-20T22:24:41.000+08:00格式
<el-table-column label="检测时间" align="center" prop="cTime" :formatter="dateFormat" />
在method中加入方法
//日期格式化
dateFormat(row, column) {
// 获取单元格数据
let date = row[column.property]
if (date == undefined) {
return ''
}
let dt = new Date(date)
//console.log(dt.getYear());
return dt.getFullYear() + '-' + (dt.getMonth() + 1) + '-' + dt.getDate() + ' ' + dt.getHours() + ':' + dt.getMinutes() + ':' + dt.getSeconds()
},
经过上面格式化转换页没能成功,装换成了NAN-NAN-NAN的这种,原因可能是oracle存储的时间是对象结构,前端拿到的是被分解过的时间戳,修改dateFormat()方法为下面的就可以
可以将后端传递的list转换为json输出看一下
console.log('testList:', JSON.stringify(res.data.list));
"BIRTHDAY":{"date":23,"hours":0,"seconds":0,"month":5,"nanos":0,"timezoneOffset":-480,"year":122,"minutes":0,"time":1655913600000,"day":4}
控制台的输出
el-table中的时间转换
<el-table-column prop="addTime" label="添加时间" :formatter="dateFormat" >
</el-table-column>
//eltable日期格式化
dateFormat(row, column) {
// 获取单元格数据,某行某列
let date = row[column.property]
if (date == undefined) {
return ''
}
var year = date.year + 1900,
month = date.month + 1,
day = date.date,
hour = date.hours,
minute = date.minutes,
seconds = date.seconds;
//如果得到的数字小于9要在前面加'0'
month = (month > 9) ? ("" + month) : ("0" + month);
day = (day > 9) ? ("" + day) : ("0" + day);
hour = (hour > 9) ? ("" + hour) : ("0" + hour);
minute = (minute > 9) ? ("" + minute) : ("0" + minute);
seconds = (seconds > 9) ? ("" + seconds) : ("0" + seconds);
return year + "-" + month + "-" + day;
// + " " + hour + ":" + minute + ":" + seconds;
}
oracle中将select查询出的SYSDATE时间格式化
Oracle中查询当前时间、时间格式化方法_qq_26483671的博客-CSDN博客_oracle查询日期格式
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')||'00001' from dual;
select to_char(sysdate,'yyyymmdd')||substr('0000'||SEQ_ASSET.nextval, -5) from dual
Oracle数据库字符串类型主键自增实现_知凡的博客-CSDN博客_oracle 字符串主键
vue获取当前时间并处理格式为yyyy-mm-dd
getdate() {//获取当前时间格式为yyyy-mm-dd
var dateNow = new Date(),
year = dateNow.getFullYear(),
month = dateNow.getMonth() + 1,
day = dateNow.getDate(),
hour = dateNow.getHours(),
minute = dateNow.getMinutes(),
seconds = dateNow.getSeconds();
//如果得到的数字小于9要在前面加'0'
month = (month > 9) ? ("" + month) : ("0" + month);
day = (day > 9) ? ("" + day) : ("0" + day);
hour = (hour > 9) ? ("" + hour) : ("0" + hour);
minute = (minute > 9) ? ("" + minute) : ("0" + minute);
seconds = (seconds > 9) ? ("" + seconds) : ("0" + seconds);
return year + "-" + month + "-" + day;
}
更多推荐
所有评论(0)