使用MongoDB做评论管理,存储LocalDateTime时返回时间带T

返回结果
 {
    "commentId": "1484081474396172288",
    "content": "测试评论1",
    "createTime": "2022-01-20T16:32:51.058",
    "likeNum": 0,
    "parentId": "1449980209100763137",
    "userId": "18",
    "userName": "super-admin",
    "workId": "1449980209100763137"
  }

尝试
@Configuration
public class MongoConfig {

    //TODO MongoDbFactory 已被弃用
    @Resource
    MongoDbFactory factory;

    @Primary
    @Bean(name = "mongoTemplate")
    public MongoTemplate getMongoTemplate() {
        MongoTemplate mongoTemplate = new MongoTemplate(factory);
        MappingMongoConverter mongoMapping = (MappingMongoConverter) mongoTemplate.getConverter();
        // set 自定义转换器
        mongoMapping.setCustomConversions(customConverter());
        mongoMapping.afterPropertiesSet();
        return mongoTemplate;
    }

    // 注册自定义转换器
    @Bean
    public MongoCustomConversions customConverter() {

        List<Converter<?, ?>> converters = new ArrayList<>(2);
        converters.add(new StringToLocalDateTime());
        converters.add(new LocalDateTimeToString());
        return new MongoCustomConversions(converters);
    }


}

尝试二--加注解
    @Field("create_time")
    @DateTimeFormat(pattern = "格式")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "格式(CSDN不允许)", timezone = "GMT+8")
    private LocalDateTime createTime;

我想要达到的结果

去除时间上的T,获取到格式为(年-月-日 时:分:秒)的数据

@DateTimeFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS")

我代码上的格式代表就是yyyy-MM-dd'T'HH:mm:ss.SSS,CSDN不允许重复就没写上去

看上去这个格式是符合规律的,直接按位置截字符串拼接吧😄

https://blog.csdn.net/weixin_42461205/article/details/114384361?spm=1001.2014.3001.5502

试试这个,
https://juejin.cn/post/6844903854295744525

实在不行 就直接重新弄个字段 返回给前端好了 重写新字段get方法 在createTime不为空的时候 返回格式化后的时间字符串就好了,这样也不影响前端的使用,也没有打破原有逻辑,DateTimeFormat和JsonFormat好像对LocalDateTime 不起作用

img

img