当前位置: 代码网 > it编程>编程语言>Java > SpringBoot三种方法接口返回日期格式化小结

SpringBoot三种方法接口返回日期格式化小结

2025年01月11日 Java 我要评论
方法一:@jsonformat注解在返回实体的字段上添加@jsonformat注解。@jsonformat(pattern = "yyyy-mm-dd hh:mm:ss", timezone = "g

方法一:@jsonformat注解

在返回实体的字段上添加@jsonformat注解。

@jsonformat(pattern = "yyyy-mm-dd hh:mm:ss", timezone = "gmt+8")
private date createdate;

pattern是日期格式,timezone是时间分区。格式具体可以参考下图:

在这里插入图片描述

方法二:jsonconfig配置

全局配置。好处:无需每个类配置日期格式坏处:不灵活,只能统一。

package com.xy.config;

import com.fasterxml.jackson.databind.serializationfeature;
import com.fasterxml.jackson.datatype.jsr310.ser.localdatetimeserializer;
import lombok.extern.slf4j.slf4j;
import org.springframework.beans.factory.annotation.value;
import org.springframework.boot.autoconfigure.jackson.jackson2objectmapperbuildercustomizer;
import org.springframework.boot.jackson.jsoncomponent;
import org.springframework.context.annotation.bean;
import org.springframework.stereotype.component;

import java.text.dateformat;
import java.text.simpledateformat;
import java.time.localdatetime;
import java.time.format.datetimeformatter;
import java.util.timezone;

//jackson日期
@slf4j
@jsoncomponent

public class jacksonconfig {

    @value("${my.jackson.date-format:yyyy-mm-dd hh:mm:ss}")
    private string pattern;

    @bean
    public jackson2objectmapperbuildercustomizer jackson2objectmapperbuilder() {

        return builder -> {
            timezone tz = timezone.gettimezone("gmt+8");
            dateformat df = new simpledateformat(pattern);
            df.settimezone(tz);
            builder.failonemptybeans(false)
                    .failonunknownproperties(false)
                    .featurestodisable(serializationfeature.write_dates_as_timestamps)
                    .dateformat(df);
        };
    }

    @bean
    public localdatetimeserializer localdatetimedeserializer() {
        return new localdatetimeserializer(datetimeformatter.ofpattern(pattern));
    }

    @bean
    public jackson2objectmapperbuildercustomizer jackson2objectmapperbuildercustomizer() {
        return builder -> builder.serializerbytype(localdatetime.class, localdatetimedeserializer());
    }

}

然后配置文件里配置好格式就行。

方法三:yml配置

spring:
  jackson:
    date-format: yyyy-mm-dd hh:mm:ss
    time-zone: gmt+8

utc和 gmt区别utc‌:协调世界时间(utc)是基于原子时钟的时间计量系统,旨在尽量接近世界时(ut)。utc的时间尺度是均匀的,不考虑地球自转速度的变化‌。‌gmt+8‌:格林威治平均时间加8小时,即东八区的本地时间。gmt+8通常用于表示中国北京时间‌‌utc‌:在国际无线电通信、卫星导航等需要高精度时间计量的场合广泛使用‌。‌gmt+8‌:常用于表示中国北京时间,在电子邮件信头、软件显示时间等场合使用‌。总结:utc和gmt+8基本相同,utc更精确而gmt+8常代表北京时间。

总结

三种方法个人推荐第三种。为什么,因为太方便了,另外如果有特殊格式,可以再加@jsonformat单独注解,会优先以添加了@jsonformat注解的为准。

到此这篇关于springboot三种方法接口返回日期格式化小结的文章就介绍到这了,更多相关springboot 接口返回日期格式化内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com