You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

表单提交至Controller时出现java.sql.Time类型转换失败问题

解决表单提交时String转java.sql.Time的类型不匹配问题

嘿,这个问题我太熟悉了——Spring MVC默认的类型转换器没办法把你表单里的10:00这种字符串直接转成java.sql.Time类型,所以才抛出了typeMismatch的错误。给你几个靠谱的解决方案,按需选就行:

方案1:给实体字段加@DateTimeFormat注解

这是最直接的办法,在你的heureDebut字段上添加@DateTimeFormat注解,明确指定时间字符串的格式:

@Entity(name = "horaire")
public class Horaire {
    @Id
    @GeneratedValue
    @Column(name = "idhoraire")
    private Integer id;
    
    @Column(name = "heure_debut")
    @DateTimeFormat(pattern = "HH:mm") // 指定24小时制的时分格式
    private java.sql.Time heureDebut;
    
    // 其他字段、getter/setter省略
}

这个注解会告诉Spring:“把输入的字符串按照HH:mm的格式解析成java.sql.Time”,完美匹配你输入的10:00格式。如果是12小时制的时间(比如10:00 AM),就把pattern改成hh:mm a。

方案2:全局配置时间格式(Spring Boot适用)

如果你项目里有很多地方需要处理这种格式的时间转换,不想逐个字段加注解,可以在application.properties(或application.yml)里全局配置:

# application.properties
spring.mvc.format.time=HH:mm

这样Spring会自动把所有java.sql.Time类型的字段都按照这个格式来解析字符串输入,一劳永逸。

方案3:自定义类型转换器(灵活度最高)

如果你的时间格式比较特殊,或者需要额外的校验逻辑,可以写一个自定义的转换器,注册到Spring的转换服务里:

import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;
import java.sql.Time;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

@Component
public class StringToSqlTimeConverter implements Converter<String, Time> {
    // 定义你需要的时间格式
    private static final DateTimeFormatter TIME_FORMATTER = DateTimeFormatter.ofPattern("HH:mm");

    @Override
    public Time convert(String source) {
        // 处理空值情况
        if (source == null || source.trim().isEmpty()) {
            return null;
        }
        // 先把字符串转成LocalTime,再转成java.sql.Time
        LocalTime localTime = LocalTime.parse(source.trim(), TIME_FORMATTER);
        return Time.valueOf(localTime);
    }
}

只要把这个类加上@Component注解,Spring会自动识别并使用它来处理String到java.sql.Time的转换,非常灵活。

小提示

  • 确保你输入的时间字符串和指定的格式完全匹配,比如如果pattern是HH:mm,就不要输入10:00:00(带秒),否则还是会报错;
  • java.sql.Time本身不存储时区,尽量在前端统一时区后再提交,避免出现时间偏差。

内容的提问来源于stack exchange,提问作者Marian Mereuta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:41:45