SpringMVC 绑定参数之类型转换(日期和字符串的互转)

一、字符串转换为日期格式

前面已经学过通过 自定义类型转换器 实现绑定参数的额类型转换

这里实现的也是将输入的字符串变量转换为日期的格式存储到数据库中:
在这里插入图片描述
这里的出发时间为日期格式,但是传过去的是字符串格式,需要对其转换下,可以在实体变量那里对其进行格式化,不过这种方式只适用该实体类,具有局部性,没有自定义类型转换器范围广。
在这里插入图片描述

还有一种方法可以借助下面的 DateUtils 类
在这里插入图片描述

二、日期转换为字符串

这主要应用在,将数据库中的日期读取到网页上显示使用。

第一种方法可以在定义实体类时通过 DateUtils 对其进行转换设置:

public class DateUtils {

    /**
     * 日期转换成字符串
     */
    public static String date2String(Date date, String patt) {
        SimpleDateFormat sdf = new SimpleDateFormat(patt);
        String format = sdf.format(date);
        return format;
    }

    /**
     * 字符串转换成日期
     */
    public static Date string2Date(String str, String patt) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat(patt);
        Date parse = sdf.parse(str);
        return parse;
    }
}

这样通过定义实体类时,对 departureTime 的get,set 方法进行处理获得不同的结果。

比如这里我想得到字符串形式的 departureTime,那就多定义一个departureTimeStr,表示字符串形式的日期
在这里插入图片描述

public String getDepartureTimeStr() {
        if(departureTime!=null){
            departureTimeStr= DateUtils.date2String(departureTime,"yyyy-MM-dd HH:mm:ss");
        }
        return departureTimeStr;
    }

这样在页面中直接使用 departureTimeStr,表示日期的字符串。
同理也可以对 departureTime 的set 方法进行设置,通过 DateUtils 的 string2Date,完成日期和字符串的转换。

第二种方法,可以不处理实体类,而在页面端进行日期格式的处理:

<tr>
<td>生成日期</td>
<td> <fmt:formatDate value="${item.createtime}" pattern="yyyy-MM-dd HH:mm:ss"/> </td>
</tr>

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Spring MVC提供了一个类型转换的接口,称为ConversionService。该接口允许在不同的Java类之间进行转换。它可以用于将字符串转换为Java对象,以及在方法参数绑定和Bean配置中使用。 ConversionService接口的主要特点是它使用TypeDescriptor来描述需要转换的类的信息,并且还描述了宿主类的上下文信息。转换的类将以成员变量的方式出现在宿主类中。这种类型转换逻辑可以利用这些信息进行灵活的控制。 以下是一个使用ConversionService的示例: ```java import org.springframework.core.convert.ConversionService; import org.springframework.core.convert.TypeDescriptor; import org.springframework.core.convert.support.DefaultConversionService; public class ConversionExample { public static void main(String[] args) { ConversionService conversionService = new DefaultConversionService(); // 将字符串转换为整数 String numberString = "123"; Integer number = conversionService.convert(numberString, Integer.class); System.out.println("Converted number: " + number); // 输出:Converted number: 123 // 将字符串转换为日期 String dateString = "2021-01-01"; TypeDescriptor stringType = TypeDescriptor.valueOf(String.class); TypeDescriptor dateType = TypeDescriptor.valueOf(java.util.Date.class); java.util.Date date = (java.util.Date) conversionService.convert(dateString, stringType, dateType); System.out.println("Converted date: " + date); // 输出:Converted date: Fri Jan 01 00:00:00 GMT 2021 } } ``` 在上面的示例中,我们首先创建了一个DefaultConversionService对象作为ConversionService的实例。然后,我们使用convert()方法将字符串转换为整数和日期。对于日期的转换,我们使用TypeDescriptor来描述字符串日期的类信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南淮北安

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值