@JsonFormat与@DateTimeFormat注解的使用
注解@JsonFormat主要是后台到前台的时间格式的转换
注解@DataFormAT主要是前后到后台的时间格式的转换
注解@JsonFormat
<!--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
import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; @Data public class TestClass { //设置时区为上海时区,时间格式自己据需求定。 @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8") private Date testTime; }
@JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
pattern:是你需要转换的时间日期的格式
timezone:是时间设置为东八区,避免时间在转换中有误差
提示:@JsonFormat注解可以在属性的上方,同样可以在属性对应的get方法上,两种方式没有区别
注解@DateTimeFormat
<!-- joda-time -->
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.3</version>
</dependency>
在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;
注:当使用LocalDateTime时 @JsonFormat 失效
代替方案:@JSONField(format=“yyyy/MM/dd HH:mm:ss”)
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.71</version> </dependency>
JsonFormat注解是jackson的注解。
JSONField注解是fastjson的注解。
import com.alibaba.fastjson.annotation.JSONField; import com.fasterxml.jackson.annotation.JsonFormat; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") private LocalDateTime data1; @JSONField(format = "yyyy-MM-dd HH:mm:ss") private LocalDateTime data1;
完