栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot Web Java8日期处理

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot Web Java8日期处理

目录

一、输出结果(Java8日期类型转换成字符串)二、接收参数(字符串转换Java8日期类型)

一、输出结果(Java8日期类型转换成字符串)

方式1:可在对象属性上单独添加@com.fasterxml.jackson.annotation.JsonFormat

@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;

方式2:全局设置

import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

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


@Configuration
public class LocalDateTimeSerializerConfig {


    @Value("${spring.jackson.date-format:yyyy-MM-dd HH:mm:ss}")
    private String dateTimePattern;

    
    @Bean
    public LocalDateTimeSerializer localDateTimeSerializer() {
        return new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(dateTimePattern));
    }

    
    @Bean
    public LocalDateTimeDeserializer localDateTimeDeserializer() {
        return new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(dateTimePattern));
    }

    
    @Bean
    public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
        return builder -> {
            builder.serializerByType(LocalDateTime.class, localDateTimeSerializer());
            builder.deserializerByType(LocalDateTime.class, localDateTimeDeserializer());
            builder.simpleDateFormat(dateTimePattern);
        };
    }
}

二、接收参数(字符串转换Java8日期类型)

方式1:可在controller方法参数上、对象属性上单独添加@org.springframework.format.annotation.DateTimeFormat

//controller方法参数上
@PostMapping("/date")
public void date(@RequestParam("date") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime date) {
    // ...
}

//对象属性上
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;

方式2:全局设置
通过application.yaml配置文件进行设置

spring:
  # springboot接受日期字符串成格式
  mvc.format:
    date: yyyy-MM-dd
    date-time: yyyy-MM-dd HH:mm:ss
    time: HH:mm:ss

亦可添加jackson日期格式配置(非必须)

spring:
  # springboot接受日期字符串成格式
  mvc.format:
    date: yyyy-MM-dd
    date-time: yyyy-MM-dd HH:mm:ss
    time: HH:mm:ss

  # jackson配置(jackson配置非必须,以下配置仅对输出结果为java.util.Date类型生效)
  jackson:
    # springboot输出日期格式配置
    date-format: yyyy-MM-dd HH:mm:ss

参考:
https://www.baeldung.com/spring-date-parameters

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/708635.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号