您当前的位置: 首页 > 

梁云亮

暂无认证

  • 0浏览

    0关注

    1211博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

jackson LocalDateTime 转 字符串 报错 jsr310

梁云亮 发布时间:2021-12-02 17:58:51 ,浏览量:0

错误代码
public static void main(String[] args)throws Exception {
    ObjectMapper objectMapper = new ObjectMapper();
    final LocalDateTime localDateTime = LocalDateTime.now();
    final String s = objectMapper.writeValueAsString(localDateTime);
    System.out.println(s);
}
错误

在这里插入图片描述

原因

在转换时没有设置日期的格式

解决方案一(建议)
public static void main(String[] args)throws Exception {
    ObjectMapper objectMapper = new ObjectMapper();

    //下面两行解决Java8新日期API序列化问题
    objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
    objectMapper.registerModule(new JavaTimeModule());

    final LocalDateTime localDateTime = LocalDateTime.now();
    final String s = objectMapper.writeValueAsString(localDateTime);
    System.out.println(s);
}
解决方案二
public static void main(String[] args)throws Exception {
    ObjectMapper objectMapper = new ObjectMapper();
    
        // 日期和时间格式化
        JavaTimeModule javaTimeModule = new JavaTimeModule();
        // 设置LocalDateTime的序列化格式
        javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
        javaTimeModule.addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
        javaTimeModule.addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern("HH:mm:ss")));
        javaTimeModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
        javaTimeModule.addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
        javaTimeModule.addDeserializer(LocalTime.class, new LocalTimeDeserializer(DateTimeFormatter.ofPattern("HH:mm:ss")));
        objectMapper.registerModule(javaTimeModule);

    final LocalDateTime localDateTime = LocalDateTime.now();
    final String s = objectMapper.writeValueAsString(localDateTime);
    System.out.println(s);
}
关注
打赏
1665409997
查看更多评论
立即登录/注册

微信扫码登录

0.0402s