@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;

 

 

posted @ 2021-02-22 14:59  桥头堡洗脚城  阅读(453)  评论(0编辑  收藏  举报