Java-LocalDateTime-时间格式化

    开发过程中使用jdk8的LocalDateTime对时间的处理非常方便,但是返回的时间中间会多一个"T"。

查看源码,该方法重写了toString方法,如下:

Java-LocalDateTime-时间格式化_第1张图片

    所以需要对返回的时间进行格式化处理,去掉"T"。

    当然,前端处理也是一种方法。这里主要讨论后端的处理方法。

    1.Json格式化

     引入jar包

    


com.fasterxml.jackson.datatype
jackson-datatype-jsr310
2.9.2

(1)dto的时间字段增加注解

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime gmtCreate;

    2.配置一个bean

package com.vipcode.vts.configuration;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

@Configuration
public class BeanConfiguration {
    /**
     * 时间格式化
     * @return
     */
    @Bean
    public ObjectMapper serializingObjectMapper() {
        ObjectMapper objectMapper = new ObjectMapper();
        JavaTimeModule javaTimeModule = new JavaTimeModule();
        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")));
        objectMapper.registerModule(javaTimeModule);
        return objectMapper;
    }
}

    个人认为第二种方法比较方便,直接配置了全局。不用一个一个配置。

你可能感兴趣的:(Java-LocalDateTime-时间格式化)