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

@JsonFormat与@DateTimeFormat

@JsonFormat注解很好的解决了后端传给前端的格式,我们通过使用 @JsonFormat可以很好的解决:后台到前台时间格式保持一致的问题

其次,另一个问题是,我们在使用WEB服务的时,可 能会需要用到,传入时间给后台,比如注册新用户需要填入出生日期等,这个时候前台传递给后台的时间格式同样是不一致 的,而我们的与之对应的便有了另一个注解,@DataTimeFormat便很好的解决了这个问题,

JsonFormat注解

关于@JsonFormat的使用,一定要导入正确完整的包。

1.注解@JsonFormat 使用maven引入@JsonFormat所需要的jar包,

    <!-- Jackson Json处理工具包 --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>${jackson.version}</version></dependency><dependency><groupId>org.json</groupId><artifactId>json</artifactId><version>20140107</version></dependency>

在你需要查询出来的时间的数据库字段对应的实体类的属性上添加@JsonFormat

//设置时区为上海时区,时间格式自己据需求定。

@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")Date birthday;@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")Date admissionDate;
}

这里解释一下:@JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")

pattern:是你需要转换的时间日期的格式 timezone:是时间设置为东八区,避免时间在转换中有误差 提示:

@JsonFormat注解可以在属性的上方,同样可以在属性对应的get方法上,两种方式没有区别

3.完成上面两步之后,我们用对应的实体类来接收数据库查询出来的结果时就完成了时间格式的转换,再返回给前端时就是一 个符合我们设置的时间格式了

注解@DateTimeFormat

1.@DateTimeFormat的使用和@jsonFormat差不多,首先需要引入jar包

  <dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency>

在controller层我们使用spring mvc 表单自动封装映射对象时,我们在对应的接收前台数据的对象的属性上加 @DateTimeFormat

    @DateTimeFormat(pattern = "yyyy-MM-dd")@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")Date birthday;Long classId;@DateTimeFormat(pattern = "yyyy-MM-dd")@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")Date admissionDate;

我这里就只贴这两个属性了,这里我两个注解都同时使用了,因为我既需要取数据到前台,也需要前台数据传到后台,都需要 进行时间格式的转换,可以同时使用

通过上面两个步骤之后,我们就可以获取一个符合自定义格式的时间格式存储到数据库了

注意:

  • 一旦使用yyyy-MM-dd 格式,如果传时分秒就会报错,或者是使用 yyyy-MM-dd HH:mm:ss,如果传yyyy-MM-dd 也会报错。
  • 假如是springboot项目的话,使用这两个注解是不用导其他的依赖包的!
  • 框架当中默认他会认为 前端传的是UTC时间,然后SpringMVC在接到参数的时候,会进行转换为本地区时间,向前端返回参数的时候会转换为UTC时间!
  • 这两个注解可以选择在实体类的set方法当中使用,也可以在字段上使用,效果是一样的!
     

总结: 注解@JsonFormat主要是后台到前台的时间格式的转换 注解@DataFormAT主要是前后到后台的时间格式的转换 

.

http://www.lryc.cn/news/278918.html

相关文章:

  • 半监督学习 - 自训练(Self-training)
  • outlook邮件群发单显技巧?群发怎么单显?
  • 【REST2SQL】07 GO 操作 Mysql 数据库
  • [UI5] ODATA V4中的CRUD
  • js封装根据年月日获取星座效果demo(整理)
  • Vue.js设计与实现阅读-2
  • GEM5 McPAT教程:源代码解读McPAT NoC功耗 arbiter部分
  • 使用组合框QComboBox模拟购物车
  • 云服务器十大服务商——云服务器哪家好用
  • SQL DML
  • MySQL--基础篇
  • [VUE]5-TypeScript
  • Linux指令(一)
  • C语言中的回文素数
  • 前端生成pdf之html2canvas+jsPDF,以及解决图片不显示bug
  • PHP常用符号和函数
  • C#,入门教程(12)——数组及数组使用的基础知识
  • C语言中的副作用、序列点以及复杂表达式的求值顺序
  • C++学习笔记——队列模拟
  • jvm垃圾回收相关的算法
  • 每日coding
  • 软件工程_复习
  • 07GoF之三种工厂模式
  • JAVA面试部分——后端-线程前篇
  • 【小沐学C++】C++ 实现鼠标键盘钩子HOOK
  • 【pycharm】常见问题与解决
  • flask web学习之表单(一)
  • @ControllerAdvice 使用场景
  • 二极管选型怎么选?常用参数要熟练~
  • 【小白专用】C#关于角色权限系统