实体类日期格式化,java 当前时间格式化
00-1010实体类时间格式化java实体类时间格式化注释常用注释注释注释1: DateTimeFormt注释2: JsonFormt注释3: JSONField注释
目录
实体类时间格式化
@ JSON format(pattern= yyyy-MM-DD hh :MM : ss ,time zone= GMT 8 )@ datetime format(pattern= yyyy-MM-DD hh :MM 3360 ss )私人日期时间;pattern:time zone time zone:time zone @ JSON format默认情况下是标准时区的时间,相差8个小时以上。
使用时,根据需要添加时区北京时间东部时区8="GMT 8 "。
功能:将后台的时间格式发送到前台。
@DateTimeFormat从前台到后台接受时间格式。
00-1010假设有以下实体类:
导入Java . util . date;public class DateVo { private Date Date;public void set Date(Date Date){ this . Date=Date;} public Date getDate(){ return Date;}}提供了以下接口:
@ rest controller @ request mapping(/date )公共类date controller { @ request mapping( test )公共DateVo getDate(DateVo){ system . out . println(VO . getDate());simple date format SDF=new simple date format( yyyy-MM-DD hh :MM : ss );string date=SDF . format(VO . getdate());System.out.println(日期);DateVo DateVo=new DateVo();datevo . set Date(new Date());返回dateVo}}直接访问接口(参数VO: 2020-12-25 11:22:33),会抛出如下异常:
原因很简单:类型参数不匹配。传入的参数vo的日期是字符串类型,但是需要日期类型,这需要参数格式化。
00-1010 Note @ DateTimeFormatt是spring框架提供的,它的作用是在参数格式化的过程中指定时间类型参数的格式。
对上述实体类进行以下修改:
public类DateVo { @ datetime format(pattern= yyyy-MM-DD hh :MM : ss )private Date日期;public void set Date(Date Date){ this . Date=Date;} public Date getDate(){ return Date;}}再次进入界面(参数VO: 2020-12-25 11:22:33)。如果访问成功,控制台上将打印以下内容:
Fri 2020年12月25日
2020-12-25 11:22:33
同时返回到前端:
2020-12-25t 033:4033
这个返回的内容可能不符合前端时间格式的要求,所以需要用参数进行格式化。
00-1010 Annotation @ jsonformat由杰克逊提供。由于spring框架中默认集成的json工具是jackson(国内广泛使用的fastjson提供annotation @JSONField),使用annotation @ jsonformat不需要引入额外的依赖,重新修改实体类:
public class DateVo { @ datetime format(pattern= yyyy-MM-DD hh :MM : ss )@ JSON format(pattern= yyyy-MM-DD hh :MM 3360 ss ,timezone=GMT 8)private Date日期;public void set Date(Date Date){ this . Date=Date;} public Date getDate(){ return Date;}}继续访问界面(参数VO: 2020-12-25 11:22:33)并返回:
2020-12-25 11:40:26
注意:使用注释@ jsonformat时,必须指定时区。默认为0时区,与北京时间(东8时区)相差8小时。
00-1010阿里巴巴更开源的fasejson在国内使用,也提供指定时间格式的标注。用spring框架开发时,需要注意的是,fastjson并没有集成在spring框架中,所以它的依赖关系需要引入到pom文件中。实体类修改如下:
public class DateVo { @ datetime format(pattern= yyyy-MM-DD hh :MM : ss )@ JSON field(format= yyyy-MM-DD hh :MM 3360 ss )private Date日期;public void set Date(Date Date){ this . Date=Date;} public Date getDate(){ return Date;}}以上是我的亲身经历。希望能给大家一个参考,也希望大家能支持盛行的IT。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。