全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-18 7 分钟 ✍️ juanwangdev

日期类型转换

SpringMVC默认不支持字符串到日期的自动转换,需要额外配置。

DateTimeFormat注解

单个字段

Java
public class User {
    private String username;
    private Integer age;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date birthday;

    // getter/setter
}

控制器方法

Java
@PostMapping("/user/save")
public String saveUser(User user) {
    System.out.println(user.getBirthday());
    return "success";
}

请求:/user/save?username=张三&birthday=2000-01-15

方法参数直接使用

Java
@GetMapping("/query")
public String query(
    @DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate,
    @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate
) {
    System.out.println(startDate + " - " + endDate);
    return "success";
}

请求:/query?startDate=2024-01-01&endDate=2024-12-31

常用日期格式

格式示例
yyyy-MM-dd2024-01-15
yyyy/MM/dd2024/01/15
yyyy-MM-dd HH:mm:ss2024-01-15 10:30:00
yyyy年MM月dd日2024年01月15日

ISO标准格式

Java
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
private Date date;

@DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)
private Date dateTime;

自定义转换器

全局日期转换器配置:

Java
@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void addFormatters(FormatterRegistry registry) {
        DateTimeFormatterRegistrar registrar = new DateTimeFormatterRegistrar();
        registrar.setDateFormatter(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
        registrar.registerFormatters(registry);
    }
}

@DateTimeFormat只用于请求参数绑定,返回JSON日期格式需配合@JsonFormat。

要点总结

  • @DateTimeFormat:参数绑定时的日期格式化
  • pattern:自定义日期格式
  • iso:使用ISO标准格式
  • 全局配置:实现WebMvcConfigurer接口

📝 发现内容有误?点击此处直接编辑

← 上一篇 数组与集合参数绑定
下一篇 → 日期类型转换进阶
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库