LocalDateTime格式日期以及返回此格式给前台展示问题

目录

java 8出的localDateTime着实好用,但是Spring并不支持这个格式的接收与展示,鄙人也是碰到这个问题,所以做个记录。新手上路,有不当的地方还望大家指出,必会虚心接受。

SpringBoot框架下

后端如何接收LocalDateTime类型的数据,使用转换器即可

@Slf4j
public class DateConverter implements Converter<String, LocalDateTime> {

    @Override
    public LocalDateTime convert(String s) {
        if (s==null || "".equals(s)){
            return null;
        }
        try {
            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
            try {
                ZoneId zoneId = ZoneId.systemDefault();
                //String转成Date类型
                Date date = sdf1.parse(s);
                Instant instant = date.toInstant();
                return instant.atZone(zoneId).toLocalDateTime();
            } catch (ParseException e) {
                e.printStackTrace();
                throw new RuntimeException("转换日期格式时发生错误");
            }
        }catch (RuntimeException e){
            throw new RuntimeException("转换日期格式时发生错误");
        }
    }
}

这里的Converter是org.springframework.core.convert.converter这个包下的,可别导错了,try里面就是String转成LocalDateTime的方法,大家需要怎么转都行,可以按需修改。
然后添加这个转换器就可以了

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    /**
     * 添加转换器
     *
     * @param registry
     */
    public void addFormatters(FormatterRegistry registry) {
        registry.addConverter(new DateConverter());
    }

}

到这里就可以了。这样后端就能接收LocalDateTime了

前台展示问题

如果你的前台展示日期出现这种这情况说明一个问题你在上面的添加转换器的地方并不是实现了WebMvcConfigurer这个方法而是继承了WebMvcConfigurationSupport这个方法,后者会导致日期转换失效。
在这里插入图片描述
这种把WebMvcConfigurationSupport换成WebMvcConfigurer就行了,如果实在是不想换,也很简单导依赖

  <dependency>
            <groupId>com.fasterxml.jackson.datatype</groupId>
            <artifactId>jackson-datatype-jsr310</artifactId>
            <version>2.9.8</version>
        </dependency>

然后在你需要返回的LocalDateTime上添加以下注解即可

 @JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")

当然这里的pattern也是可以变的按需修改即可。

至此就已经结束了,感谢大家的观看,不足之处望海涵。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值