日期处理的三种方式
Posted masterhxh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了日期处理的三种方式相关的知识,希望对你有一定的参考价值。
一:使用注解的方式
@JsonFormat注解
该注解加在实体类中的日期类型上,可以将返回的Json字符串中的时间戳转换为具体时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date updateTime;?
我们通过使用@JsonFormat可以很好的解决:后台到前台时间格式保持一致的问题
声明:关于@JsonFormat的使用,一定要导入正确完整的包。
使用maven引入@JsonFormat所需要的jar包,我贴一下我这里的pom文件的依赖
<!--JsonFormat--> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.8.8</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.8.8</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.13</version> </dependency>
这里解释一下:@JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
pattern:是你需要转换的时间日期的格式
timezone:是时间设置为东八区,避免时间在转换中有误差
提示:@JsonFormat注解可以在属性的上方,同样可以在属性对应的get方法上,两种方式没有区别.
如果既需要取数据到前台,也需要前台数据传到后台,都需要进行时间格式的转换,可以同时使用@DateTimeFormat和@JsonFormat注解
注解@DateTimeFormat
1.@DateTimeFormat的使用和@jsonFormat差不多
<!-- joda-time --> <dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>2.3</version> </dependency>
2.在controller层我们使用spring mvc 表单自动封装映射对象时,我们在对应的接收前台数据的对象的属性上加@DateTimeFormat
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private Date symstarttime;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private Date symendtime;
3.通过上面两个步骤之后,我们就可以获取一个符合自定义格式的时间格式存储到数据库了
总结:
注解@JsonFormat主要是后台到前台的时间格式的转换
注解@DateTimeFormat主要是前后到后台的时间格式的转换
以上是关于日期处理的三种方式的主要内容,如果未能解决你的问题,请参考以下文章