📅  最后修改于: 2023-12-03 14:40:38.409000             🧑  作者: Mango
在 Spring 中,我们常常需要在对象中使用日期或时间字段。但是,在传输或保存时,日期或时间必须以特定的格式表示。这就是使用 datetimeformat
注解的地方了。datetimeformat
注解允许我们在对象的字段上指定日期时间格式。
@DateTimeFormat(pattern="日期时间格式")
private Date myDate;
pattern
:日期时间格式,例如 yyyy-MM-dd HH:mm:ss
等。
import org.springframework.format.annotation.DateTimeFormat;
public class User {
private int id;
private String name;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
// Getters and setters
}
在上面的示例中,我们在 User 类中的 createTime 字段上使用 @DateTimeFormat
注解,指定其日期时间格式为 yyyy-MM-dd HH:mm:ss
。
现在,我们可以在控制器中使用此对象,Spring 会自动根据指定的格式解析 createDate 字段。
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class UserController {
@PostMapping("/users")
public void createUser(User user) {
// ...
}
}
使用@InitBinder
注解在Controller中声明方法来自定义格式,同时添加全局配置。
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import java.text.SimpleDateFormat;
import java.util.Date;
@RestControllerAdvice
public class DateTimeFormatConfig {
@InitBinder
public void initBinder(WebDataBinder binder) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
}
}