赞
踩
前端:vue3 elementui-plus
后端:Springboot + MongoDB
前端使用el-date-picker选择时间,上传到后端后,发现时间晚8小时
前端代码:
<el-date-picker
v-model="tempTypicalForm['Time']"
type="datetime"
/>
此情况下,当选择时间如下:
检查实际发送的数据:
发现时间不匹配,应该是UTC之类的时间,慢了8小时
修改前端代码如下:
<el-date-picker
value-format="YYYY-MM-DD hh:mm:ss"
v-model="tempTypicalForm['Time']"
type="datetime"
/>
此时发送的数据变为了:
与实际选择的值匹配。
后端代码参考:
@JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
LocalDateTime Time;
修改后能够成功保存
后端进行修改:
工具类:
public static LocalDateTime conv2LocalDateTime(String str){
Instant instant = Instant.parse(str);
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault()); // 转换为系统默认时区的 LocalDateTime
return localDateTime;
}
使用:
LocalDateTime startTime = conv2LocalDateTime(pages.getStartTime());
接口定义:
@Schema(description = "开始时间")
String startTime;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。