@JsonFormat
@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(pattern="yyyy-MM-dd",timezone = "GMT+8")设置时间格式和时区
@Data
public class TestClass {
//设置时区为+9时区
@JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
private Date testTime;
}
如果项目中使用json解析框架为fastjson框架,在实体字段上使用@JsonFormat注解格式化日期
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
@DataFormat
主要是前后端到后台的时间格式的转换
<!-- joda-time -->
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.3</version>
</dependency>
添加@DateTimeFormat(pattern = "yyyy-MM-dd")注解,指定时间格式
@Data
public class TestClass {
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date testTime;
}
举个例子
创建一个demo表
DROP TABLE IF EXISTS `demo_vo`;
CREATE TABLE `demo_vo` (
`id` BIGINT(11) PRIMARY KEY AUTO_INCREMENT,
`create_time` DATETIME,
`update_time` DATETIME
)
orm框架使用JPA,创建一个实体类
@Data
@Entity
@Table(name = "demo_vO")
public class DemoVO {
@Id
@GeneratedValue
private Integer id;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private String updateTime;
}
DemoController
@RequestMapping(value = "/test", method = RequestMethod.POST)
public DemoVO test(@RequestBody DemoVO demoVO) {
demoVO.setUpdateTime("2018-10-10 10:10:10");
demoRepository.save(demoVO);
return demoVO;
}
请求报文参数与返回参数

数据库

不管前端与后端数据交互还是前后端与后台数据交互,我们都可以用一种优雅的方式实现。
本文详细介绍如何使用@JsonFormat和@DateTimeFormat注解在Java项目中进行前后端时间格式的优雅转换,涵盖Jackson和Joda-Time库的配置及使用。
2万+

被折叠的 条评论
为什么被折叠?



