Java解析前端多种时间格式

一般前后端传递时间采用时间戳比较多,但是有时候新老项目或者开发人员格式不统一,可能会出现时间戳,或yyyy-MM-dd HH-mm-ss  甚至像这种时间 Thu, 27 Apr 2023 06:16:37 GMT(EEE, dd MMM yyyy HH:mm:ss zzz)。

在接口传递时总是会报错,时间类型转换异常。

我们可以通过实现Converter接口,自定义类型转换,直到转换正确返回。

代码如下:

@Component
public class DateConverter implements Converter<String, Date> {
    
    @Override
    public Date convert(String source) {

        if(StringUtils.isBlank(source)){
            return null;
        }

        try {
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            return format.parse(source);
        } catch (ParseException e1) {
            try {
                SimpleDateFormat format2 = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz", Locale.ENGLISH);
                format2.setTimeZone(TimeZone.getTimeZone("GMT+8"));
                return format2.parse(source);
            } catch (Exception ignore) {
            }
            return new Date(Long.valueOf(source));
        }
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值