欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java?Spring?boot日期和時間統(tǒng)一設(shè)置三種方法

 更新時間:2024年08月03日 09:31:02   作者:木不是丁  
時間和日期的統(tǒng)一設(shè)置在項目中經(jīng)常是會遇到的,下面這篇文章主要給大家介紹了關(guān)于Java?Spring?boot日期和時間統(tǒng)一設(shè)置的三種方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

方法一:配置文件修改

修改配置文件配置application.yml:

spring:
  # 配置日期格式化
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss  #時間戳統(tǒng)一轉(zhuǎn)換為指定格式
    time-zone: GMT+8  # 時區(qū)修改為東8區(qū)

application.properties配置方式

spring.jackson.date-format=yyyy-MM-dd HH:mm:ss #時間戳統(tǒng)一轉(zhuǎn)換為指定格式
spring.jackson.time-zone=GMT+8 # 時區(qū)修改為東8區(qū)

【注意】這里需要修改時區(qū)time-zone:數(shù)據(jù)庫默認(rèn)時區(qū)是格林尼治的時間,如果不設(shè)置,會比實際時間少8個小時(北京時間)。

方法二:在javabean實體類上加注解 

@JsonFormat注解

@JsonFormat注解用于屬性或方法上,將Date類型轉(zhuǎn)換為我們需要的類型顯示。

//在pattern上設(shè)置自己需要的格式
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date createTime;

@DateTimeFormat注解

在需要進(jìn)行日期格式轉(zhuǎn)換的Date屬性上添加注解@DateTimeFormat(pattern = "需要轉(zhuǎn)換的格式")

//注解將yyyy-MM-dd的形式轉(zhuǎn)換為Date數(shù)據(jù)
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date birthday;

@Temporal注解

通過@Temporal注解,實現(xiàn)日期格式轉(zhuǎn)換,它自帶屬性參數(shù),比如:

@Entity
public class MyEntity {
    @Id
    private Long id;

    // 得到Y(jié)YYY-MM-DD日期格式
    @Temporal(TemporalType.DATE)
    private Date myDate;

    // 得到HH:MM:SS時間格式
    @Temporal(TemporalType.TIME)
    private Date myTime;

    // 得到Y(jié)YYY-MM-DD HH:MM:SS時間格式
    @Temporal(TemporalType.TIMESTAMP)
    private Date myTimestamp;
    // other fields and methods
}

方法三:SpringBoot配置全局日期格式轉(zhuǎn)換器

package com.mooding.common.share.config;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.Date;

import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.jackson.JsonComponent;

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.mooding.common.tools.utils.DateUtils;

import lombok.SneakyThrows;

/**
 * 類UserCombinedSerializer的實現(xiàn)描述
 *
 */
@JsonComponent
@ConditionalOnProperty(prefix = DateFormatConfig.PREFIX, name = "enabled", havingValue = "true", matchIfMissing = true)
public class DateFormatConfig {

    public static final String PREFIX = "mooding.localdateformat";

    /**
     * 中劃線
     */
    public static final String STRIKETHROUGH = "-";

    public static class LocalDateTimeJsonSerializer extends JsonSerializer<LocalDateTime> {
        @Override
        public void serialize(LocalDateTime value, JsonGenerator jsonGenerator, SerializerProvider serializerProvider)
            throws IOException, JsonProcessingException {
            jsonGenerator.writeString(DateUtils.FMT.YYYY_MM_DD_HH_MM_SS.format(value));
        }
    }

    public static class LocalDateTimeJsonDeserializer extends JsonDeserializer<LocalDateTime> {
        @Override
        public LocalDateTime deserialize(JsonParser jsonParser, DeserializationContext deserializationContext)
            throws IOException, JsonProcessingException {
            return DateUtils.FMT.YYYY_MM_DD_HH_MM_SS.parseLocalDateTime(jsonParser.getText());
        }
    }

    public static class DateJsonSerializer extends JsonSerializer<Date> {
        @Override
        public void serialize(Date value, JsonGenerator jsonGenerator, SerializerProvider serializerProvider)
            throws IOException, JsonProcessingException {
            SimpleDateFormat sdf = new SimpleDateFormat(DateUtils.FMT.YYYY_MM_DD_HH_MM_SS.getPattern());
            jsonGenerator.writeString(sdf.format(value));
        }
    }

    public static class DateJsonDeserializer extends JsonDeserializer<Date> {
        @SneakyThrows
        @Override
        public Date deserialize(JsonParser jsonParser, DeserializationContext deserializationContext)
            throws IOException, JsonProcessingException {
            String text = jsonParser.getText();
            if (text.contains(STRIKETHROUGH)) {
                SimpleDateFormat sdf = new SimpleDateFormat(DateUtils.FMT.YYYY_MM_DD_HH_MM_SS.getPattern());
                return sdf.parse(jsonParser.getText());
            } else {
                // 時間戳轉(zhuǎn)換
                return new Date(Long.parseLong(text));
            }
        }
    }

    public static class LocalDateJsonSerializer extends JsonSerializer<LocalDate> {
        @Override
        public void serialize(LocalDate value, JsonGenerator jsonGenerator, SerializerProvider serializerProvider)
            throws IOException, JsonProcessingException {
            jsonGenerator.writeString(DateUtils.FMT.YYYY_MM_DD.format(value));
        }
    }

    public static class LocalDateJsonDeserializer extends JsonDeserializer<LocalDate> {
        @Override
        public LocalDate deserialize(JsonParser jsonParser, DeserializationContext deserializationContext)
            throws IOException, JsonProcessingException {
            return DateUtils.FMT.YYYY_MM_DD.parseLocalDate(jsonParser.getText());
        }
    }

    public static class LocalTimeJsonSerializer extends JsonSerializer<LocalTime> {
        @Override
        public void serialize(LocalTime value, JsonGenerator jsonGenerator, SerializerProvider serializerProvider)
            throws IOException, JsonProcessingException {
            jsonGenerator.writeString(DateUtils.FMT.HH_MM_SS.format(value));
        }
    }

    public static class LocalTimeJsonDeserializer extends JsonDeserializer<LocalTime> {
        @Override
        public LocalTime deserialize(JsonParser jsonParser, DeserializationContext deserializationContext)
            throws IOException, JsonProcessingException {
            return DateUtils.FMT.HH_MM_SS.parseLocalTime(jsonParser.getText());
        }
    }

}

總結(jié)

到此這篇關(guān)于Java Spring boot日期和時間統(tǒng)一設(shè)置三種方法的文章就介紹到這了,更多相關(guān)Springboot日期和時間統(tǒng)一設(shè)置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Struts2相關(guān)的面試題整理分享

    Struts2相關(guān)的面試題整理分享

    這篇文章主要給大家總結(jié)整理了關(guān)于Struts2相關(guān)的面試題,文中先詳細(xì)介紹了關(guān)于struts2的工作原理、工作流程、攔截器和過濾器的區(qū)別以及什么要使用Struts2,然后分享了總結(jié)的一些關(guān)于Struts2面試的一些問題,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-11-11
  • SpringBoot使用minio及配置代碼

    SpringBoot使用minio及配置代碼

    MinIO是一個非常輕量的服務(wù),可以很簡單的和其他應(yīng)用的結(jié)合,類似?NodeJS,?Redis?或者?MySQL。本文重點給大家介紹SpringBoot使用minio及配置代碼,感興趣的朋友一起看看吧
    2022-02-02
  • SpringBoot集成SSM、Dubbo、Redis、JSP的案例小結(jié)及思路講解

    SpringBoot集成SSM、Dubbo、Redis、JSP的案例小結(jié)及思路講解

    這個案例其實就是SpringBoot集成SSM、Dubbo、Redis、JSP,看起來感覺很繁瑣,其實就是很簡單,下面通過案例分析給大家講解,感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • 詳解SpringBoot的三種緩存技術(shù)(Spring Cache、Layering Cache 框架、Alibaba JetCache 框架)

    詳解SpringBoot的三種緩存技術(shù)(Spring Cache、Layering Cache 框架、Alibaba J

    這篇文章主要介紹了SpringBoot的三種緩存技術(shù),幫助大家更好的理解和學(xué)習(xí)springboot框架,感興趣的朋友可以了解下
    2020-10-10
  • Java之如何截取視頻第一幀

    Java之如何截取視頻第一幀

    這篇文章主要介紹了Java之如何截取視頻第一幀問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Java 時間轉(zhuǎn)換的實例代碼

    Java 時間轉(zhuǎn)換的實例代碼

    下面小編就為大家?guī)硪黄狫ava 時間轉(zhuǎn)換的實例代碼。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • 解決springboot application.properties server.port配置問題

    解決springboot application.properties server.port配置問題

    這篇文章主要介紹了解決springboot application.properties server.port配置問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 關(guān)于Spring配置文件加載方式變化引發(fā)的異常詳解

    關(guān)于Spring配置文件加載方式變化引發(fā)的異常詳解

    這篇文章主要給大家介紹了關(guān)于Spring配置文件加載方式變化引發(fā)的異常的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Spring具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2022-01-01
  • springboottest測試依賴和使用方式

    springboottest測試依賴和使用方式

    這篇文章主要介紹了springboottest測試依賴和使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Hibernate組件映射代碼詳解

    Hibernate組件映射代碼詳解

    這篇文章主要介紹了Hibernate組件映射代碼詳解,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02

最新評論