请自己设计一个自定义类型转换器案例,将一个出生日期格式为“yyyy-MM-dd-HH”的字符串,转为Date类型。
时间: 2023-06-25 08:06:36 浏览: 44
好的,以下是一个自定义类型转换器的案例,将字符串类型的出生日期转换为Date类型。
```java
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class StringToDateConverter implements Converter<String, Date> {
private DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-HH");
@Override
public Date convert(String source) {
try {
return dateFormat.parse(source);
} catch (ParseException e) {
throw new IllegalArgumentException("Invalid date format. Please use yyyy-MM-dd-HH");
}
}
}
```
在这个例子中,我们实现了Spring中的Converter接口,并重写了convert方法,将String类型的日期转换为Date类型的日期。
我们使用SimpleDateFormat来解析日期字符串,并在convert方法中调用dateFormat.parse(source)来将字符串转换为Date类型。
如果出生日期字符串格式不正确,我们会抛出一个IllegalArgumentException异常,提示用户使用正确的日期格式。
可以在Spring应用程序中使用这个类型转换器,例如:
```java
@Configuration
public class AppConfig implements WebMvcConfigurer {
@Override
public void addFormatters(FormatterRegistry registry) {
registry.addConverter(new StringToDateConverter());
}
}
```
这个配置类将我们的自定义类型转换器注册到Spring的FormatterRegistry中。现在,我们就可以在我们的控制器代码中将出生日期字符串转换为Date类型了:
```java
@GetMapping("/user/{id}")
public String getUserInfo(@PathVariable Long id, @RequestParam("birthday") Date birthday) {
// ...
}
```