使用@JsonFormat和@DateTimeFormat对Date格式化操作的完整攻略如下:
使用@JsonFormat和@DateTimeFormat对Date格式化操作的完整攻略如下:
- @JsonFormat注解用于序列化Java对象,将日期格式化为指定的格式,例如将日期格式化为yyyy-MM-dd HH:mm:ss,其基本使用方式如下:
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
其中pattern属性指定日期格式化的格式,timezone属性指定时区。
- @DateTimeFormat注解用于将前端传来的字符串类型的时间格式转换成Date类型,例如将“2022-01-01 00:00:00”转换成Date类型,其基本使用方式如下:
@RequestMapping("/addUser")
@ResponseBody
public String addUser(User user, @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date createTime) {
user.setCreateTime(createTime);
userService.addUser(user);
return "success";
}
在上面的代码中,我们使用了@DateTimeFormat注解,将createTime参数转换成了Date类型。
示例1:使用@JsonFormat注解格式化日期
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private Integer id;
private String name;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
}
// 在控制器中序列化对象
@RestController
public class UserController {
@RequestMapping("/user")
public User user() {
return new User(1, "Tom", new Date());
}
}
在浏览器中访问http://localhost:8080/user,返回的JSON格式如下:
{
"id": 1,
"name": "Tom",
"createTime": "2022-04-16 13:50:10"
}
我们可以看到createTime被格式化为了指定的格式。
示例2:使用@DateTimeFormat注解将字符串类型的时间格式转换成Date类型
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@Getter
@Setter
public class User {
private Integer id;
private String name;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
}
@Controller
public class UserController {
@RequestMapping(value = "/addUser", method = RequestMethod.POST)
public String addUser(User user) {
userService.addUser(user);
return "redirect:/userList";
}
}
// 在模板中使用表单提交时间
<form role="form" action="${pageContext.request.contextPath}/addUser" method="post">
<div class="form-group">
<label>用户名</label>
<input type="text" name="name" class="form-control" placeholder="请输入用户名">
</div>
<div class="form-group">
<label>创建时间</label>
<input type="text" name="createTime" class="form-control" placeholder="请输入创建时间,格式为yyyy-MM-dd HH:mm:ss">
</div>
<button type="submit" class="btn btn-primary">提交</button>
</form>
在添加用户时,我们将页面传递来的createTime参数使用@DateTimeFormat注解,转换成了Date类型。
沃梦达教程
本文标题为:使用@JsonFormat和@DateTimeFormat对Date格式化操作
![](/xwassets/images/pre.png)
![](/xwassets/images/next.png)
猜你喜欢
- Spring5新功能@Nullable注解及函数式注册对象 2022-11-25
- java实现动态验证码 2024-01-29
- Quarkus中filter过滤器跨域cors问题解决方案 2022-10-24
- 详解Spring中Bean后置处理器(BeanPostProcessor)的使用 2022-12-27
- 详解JavaWeb如何实现文件上传和下载功能 2023-08-07
- SpringBoot+Vue项目新手快速入门指南 2023-01-02
- 基于SSM框架实现简单的登录注册的示例代码 2024-01-27
- Java如何实现文件压缩与上传FTP 2023-01-18
- Java子线程调用RequestContextHolder.getRequestAttributes()方法问题详解 2023-06-01
- java EasyExcel面向Excel文档读写逻辑示例详解 2023-03-16