java处理前端UTC时间等(springboot项目)

本文介绍了在SpringBoot项目中处理前端传来的UTC时间的两种场景。一是针对application/x-www-form-urlencoded表单请求,使用SpringMVC转换器将UTC时间字符串全局转换为Date或LocalDateTime。二是针对application/json请求,通过jackson配置实现全局时间序列化转换。详细内容包括转换器和配置类的实现。
摘要由CSDN通过智能技术生成

java处理前端UTC时间等(springboot项目)

场景

前端传的UTC时间yyyy-MM-dd’T’HH:mm:ss.SSS’Z’,或者其他时间的时候,java后台全局转换时间字符串为Date类型或者LocalDateTime类型

一是SpringMVC的针对application/x-www-form-urlencoded表单请求使用转换器设置全局转换

@Component
public class StringToDateConverter 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");
        formarts.add("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
    }

    @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 if (source.contains("T")) {
            try{
                return parseDateZone(source, formarts.get(4), ZoneId.of("UTC"));
            } catch (Exception e) {
                throw 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值