@JsonFormat与@DateTimeFormat注解的使用

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

请求报文参数与返回参数

数据库

 

不管前端与后端数据交互还是前后端与后台数据交互,我们都可以用一种优雅的方式实现。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值