当前位置: 首页 > article >正文

前后端时间正确传递

引言:后端传递给前端去展示时间的时候将时间转化为String类型的时间数据去返回。此时就需要加上 @JsonFormat 注解来解决这个问题。

框架环境配置中,时间配置为

情形一:

  • 数据库字段exam_time类型为date

  • 后端实体类中examTime类型为Date

1.前端绑定的examTime类型type设置为datetime,以String类型进行传递

  <el-date-picker v-model="dataForm.examTime" type="datetime" :picker-options="pickerOptions" placeholder="考试时间"></el-date-picker>

若以上面的前后端字段设置,在进行时间传递的时候,交互会报错。

解决方法:

(1)如果需要页面展示日期时间字符串,则需要在前端页面的DateTimePicker日期时间选择器组件中加入属性value-format:"yyyy-MM-dd HH:mm:ss"

   <el-form-item label="考试时间" prop="examTime">
        <el-date-picker v-model="dataForm.examTime" type="datetime"  :picker-options="pickerOptions" value-format="yyyy-MM-dd HH:mm:ss" placeholder="考试时间">
        </el-date-picker>
   </el-form-item>

显示效果:

(2)如果需要在前端页面仅仅只展示日期,加入属性value-format:"yyyy-MM-dd ",这样后端控制台会报Json解析错误,必须在后端字段上面加入注解@JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd")才能防止报错

@JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd")
	private Date examTime;

最后显示效果: 

2.前端绑定的examTime类型type设置为date,以String类型进行传递

el-date-picker v-model="dataForm.examTime" type="date" :picker-options="pickerOptions" placeholder="考试时间"></el-date-picker>

 这样设置的话,在后端会报错

解决方法:

(1)解决的方法依旧是如果页面需要展示日期字符串,后端实体字段加上注解@JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd"),前端属性value-format:"yyyy-MM-dd ",最后页面展示的是以日期字符串展示的。

(2)若要展示日期时间字符串,前端加上属性value-format:"yyyy-MM-dd HH:mm:ss",后端什么注解都不加,最后页面是以日期时间字符串展示

情形二:

  • 数据库字段exam_time类型为datetime
  • 后端实体类中examTime类型为Date

1.前端绑定的examTime类型type设置为datetime,以String类型进行传递

<el-date-picker v-model="dataForm.examTime" type="datetime" :picker-options="pickerOptions"    placeholder="考试时间"></el-date-picker>
    

(1)若页面展示考试时间为日期时间字符串,前端加上属性value-format:"yyyy-MM-dd HH:mm:ss",后端加上注解@JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd HH:mm:ss"),代码不会报错

(2)若页面展示考试时间为日期字符串,前端加上属性value-format:"yyyy-MM-dd ",后端加上注解@JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd "),代码不会报错

2.前端绑定的examTime类型type设置为date,以String类型进行传递

(1)若页面展示考试时间为日期时间字符串,前端加上属性value-format:"yyyy-MM-dd HH:mm:ss",后端不加注解,不会报错

(2)若页面展示考试时间为日期字符串,前端加上属性value-format:"yyyy-MM-dd",后端不加注解会报错,加上注解@JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd"),不会报错

总结:前端属性都加value-format,按自己想要转换的类型设置

           后端在时间字段上都加上@JsonFormat注解


http://www.kler.cn/news/292705.html

相关文章:

  • 【扇贝编程】python爬虫——爬取动态网页笔记
  • getent passwd 获取linux并显示用户账户信息
  • 【数据结构-二维前缀异或和】【分区算法优化】力扣1738. 找出第 K 大的异或坐标值
  • CNN的魅力:探索卷积神经网络的无限可能
  • 信息安全--(五)物理与环境安全技术(二)机房安全分析与防护
  • Redis从简单使用到底层原理与分布式缓存
  • STM32外部中断(总结了易出现的BUG)
  • 基于springboot的二手车交易系统的设计与实现
  • 在 Cloud TPU Pod 上训练 PyTorch 模型
  • Java重修笔记 第四十八天 TreeSet 类、TreeMap 类
  • 计算机毕设选题推荐-基于python的剧本杀预约服务平台【python-爬虫-大数据定制】
  • 人工智能在网络安全中的重要性
  • 一文讲懂扩散模型
  • 安装opengauss企业版单机流程
  • 【GD32】---- 使用GD32调试串口并实现printf打印输出
  • 修改服务器DNS解析及修改自动对时时区
  • 【Motion Forecasting】SIMPL:简单且高效的自动驾驶运动预测Baseline
  • AI时代来临,AI基础数据服务行业未来发展有哪些变化
  • 产品经理的学习笔记(全集)-持续更新
  • 基础算法题————散列/哈希/Hash
  • ElasticSearch-倒排索引 文档映射
  • 深入理解JavaScript闭包:避免常见的内存泄漏问题
  • 深度学习|模型推理:端到端任务处理
  • 【Netty】自定义网络通信协议
  • FFmpeg源码:avpriv_set_pts_info函数分析
  • SpringBoot 实战:SpringBoot整合Flink CDC,实时追踪mysql数据变动
  • Java简单实现服务器客户端通信
  • 0to1使用JWT实现登录认证
  • ubuntu24下安装pytorch3d
  • ARM 伪指令 (26)