使用@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格式化操作
基础教程推荐
猜你喜欢
- JAVA实现Base64编码的三种方式 2023-02-05
- 详解Spring mvc ant path的使用方法 2023-08-01
- springboot如何设置请求参数长度和文件大小限制 2023-06-06
- Java基础知识之BufferedReader流的使用 2024-03-01
- SpringBoot自定义注解开发指南 2022-11-29
- Java Web监听器Listener接口原理及用法实例 2024-02-29
- 我认为JSP有问题(下) 2024-01-09
- java日期时间格式化@JsonFormat与@DateTimeFormat的使用 2023-04-17
- java中servlet实现登录验证的方法 2024-02-26
- Java实现学生成绩输出到磁盘文件的方法详解 2023-06-30