java前后端时间格式问题

前后端时间格式

1.后端向前端传递

有两种方法,分别是Formatter和 Converter

功能

Spring框架的功能,Formatter和Converter均可以将一种对象类型转换成另一种对象类型。

区别

  • Converter是通用元件,可以在应用程序的任意层中使用。

  • Formatter是专门为Web层设计的。

  • Formatter的原类型必须是String,Converter适用于任意类型。

这里介绍Converter使用,需要继承Converter<String, Date>,在Springboot中通过@Component进行配置注入,不需要额外配置,即拿即用。

  • 亲测可用,
  • 本人vx:sun632928843,有需要的 可以加下 一起交流学习

代码:

/**
 * 全局页面传入日期字符串,自动转换成日期格式
 * Component(把普通pojo实例化到spring容器中,相当于配置文件中的
 * <bean id="" class=""/>)
 */
@Component
public class DateConverterConfig implements Converter<String, Date> {

    private static final List<String> formarts = new ArrayList<>(4);
    static{
        formarts.add("yyyy-MM");
        formarts.add("yyyy-MM-dd");
        formarts.add("yyyy-MM-dd hh:mm");
        formarts.add("yyyy-MM-dd hh:mm:ss");
    }

    @Override
    public Date convert(String source) {
        String value = source.trim();
        if ("".equals(value)) {
            return null;
        }
        if(source.matches("^\\d{4}-\\d{1,2}$")){
            return parseDate(source, formarts.get(0));
        }else if(source.matches("^\\d{4}-\\d{1,2}-\\d{1,2}$")){
            return parseDate(source, formarts.get(1));
        }else if(source.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}$")){
            return parseDate(source, formarts.get(2));
        }else if(source.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}:\\d{1,2}$")){
            return parseDate(source, formarts.get(3));
        }else {
            throw new IllegalArgumentException("Invalid boolean value '" + source + "'");
        }
    }

    /**
     * 格式化日期
     * @param dateStr String 字符型日期
     * @param format String 格式
     * @return Date 日期
     */
    public  Date parseDate(String dateStr, String format) {
        Date date=null;
        try {
            DateFormat dateFormat = new SimpleDateFormat(format);
            date = dateFormat.parse(dateStr);
        } catch (Exception e) {

        }
        return date;
    }

}

2.后端接收前端

只需要在yml文件里加入以下配置即可,自动会将date类型格式转换

spring:
	jackson:
    date-format: yyyy-MM-dd HH:mm:ss #设置向前台时间的格式
    time-zone: GMT+8
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值