📜  datetimeformat 模式的 spring 注释 (1)

📅  最后修改于: 2023-12-03 14:40:38.409000             🧑  作者: Mango

使用 datetimeformat 注解格式化日期时间

在 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));
    }
}
参考资料