最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Java關(guān)于時(shí)間格式化的方法

 更新時(shí)間:2020年09月06日 14:10:23   作者:l去留無(wú)心  
這篇文章主要介紹了詳解Java關(guān)于時(shí)間格式化的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

一般從數(shù)據(jù)庫(kù)獲取的時(shí)間或日期時(shí)間格式化為date或者datetime,為了方便前端渲染,API接口返回的時(shí)候需要對(duì)日期進(jìn)行格式化轉(zhuǎn)換,通常會(huì)用到 SimpleDateFormat 工具處理。

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String time = dateFormat.format(new Date());

如果一個(gè)DTO類里面有很多關(guān)于時(shí)間字段需要格式化,就會(huì)降低開(kāi)發(fā)效率,產(chǎn)生很多重復(fù)臃腫的代碼。并且有的項(xiàng)目用Date,有的項(xiàng)目會(huì)用LocalDateTime

而此時(shí)如果能將時(shí)間格式統(tǒng)一配置,就可以省下更多時(shí)間專注于業(yè)務(wù)開(kāi)發(fā)了。

接下來(lái)介紹SpringBoot中常用的對(duì)時(shí)間或日期處理的方式

一、@JsonFormat 注解

JsonFormat注解是jackson包里面的一個(gè)注解,需要加上依賴

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-core</artifactId>
  <version>2.11.2</version>
</dependency>

@JsonFormat注解需要用在實(shí)體類的時(shí)間字段上,對(duì)應(yīng)的字段才能進(jìn)行格式化。

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.Date;

@Data
public class TestDTO {

  @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd")
  private LocalDateTime createTime;

  @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
  private Date updateTime;
}
public TestDTO get(){
    TestDTO testDTO = new TestDTO();
    testDTO.setLocalDateTime(LocalDateTime.now());
    testDTO.setDate(new Date());
    return testDTO;
  }

如下所示

還有一種可以全局定義的

二、@JsonComponent 注解 (全局)

配置類

@JsonComponent
public class DateFormatConfig {

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

  // date 類型全局時(shí)間格式化
  @Bean
  public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilder() {

    return builder -> {
      TimeZone tz = TimeZone.getTimeZone("UTC");
      DateFormat df = new SimpleDateFormat(pattern);
      df.setTimeZone(tz);
      builder.failOnEmptyBeans(false)
          .failOnUnknownProperties(false)
          .featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
          .dateFormat(df);
    };
  }

  // LocalDate 類型全局時(shí)間格式化
  @Bean
  public LocalDateTimeSerializer localDateTimeDeserializer() {
    return new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(pattern));
  }

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

這樣我們就不用加注解了,也可以實(shí)現(xiàn)格式化

@JsonComponent
public class DateFormatConfig {

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

  // date 類型全局時(shí)間格式化
  @Bean
  public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilder() {

    return builder -> {
      TimeZone tz = TimeZone.getTimeZone("UTC");
      DateFormat df = new SimpleDateFormat(pattern);
      df.setTimeZone(tz);
      builder.failOnEmptyBeans(false)
          .failOnUnknownProperties(false)
          .featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
          .dateFormat(df);
    };
  }

  // LocalDate 類型全局時(shí)間格式化
  @Bean
  public LocalDateTimeSerializer localDateTimeDeserializer() {
    return new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(pattern));
  }

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

到此這篇關(guān)于詳解Java關(guān)于時(shí)間格式化的方法的文章就介紹到這了,更多相關(guān)Java 時(shí)間格式化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Ubuntu下配置Tomcat服務(wù)器以及設(shè)置自動(dòng)啟動(dòng)的方法

    Ubuntu下配置Tomcat服務(wù)器以及設(shè)置自動(dòng)啟動(dòng)的方法

    這篇文章主要介紹了Ubuntu下配置Tomcat服務(wù)器以及設(shè)置自動(dòng)啟動(dòng)的方法,適用于Java的web程序開(kāi)發(fā),需要的朋友可以參考下
    2015-10-10
  • SpringCloud Edgware.SR3版本中Ribbon的timeout設(shè)置方法

    SpringCloud Edgware.SR3版本中Ribbon的timeout設(shè)置方法

    今天小編就為大家分享一篇關(guān)于SpringCloud Edgware.SR3版本中Ribbon的timeout設(shè)置方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • 關(guān)于@RequestParam的主要用法詳解

    關(guān)于@RequestParam的主要用法詳解

    這篇文章主要介紹了關(guān)于@RequestParam的主要用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • Scala中如何中斷循環(huán)詳解

    Scala中如何中斷循環(huán)詳解

    在Scala中,可以使用break和continue語(yǔ)句來(lái)中斷循環(huán)。break語(yǔ)句可以在滿足某個(gè)條件時(shí)中斷循環(huán),而continue語(yǔ)句可以在滿足某個(gè)條件時(shí)跳過(guò)當(dāng)前循環(huán)迭代,直接執(zhí)行下一次迭代
    2023-04-04
  • Java?Servlet響應(yīng)httpServletResponse過(guò)程詳解

    Java?Servlet響應(yīng)httpServletResponse過(guò)程詳解

    HttpServletResponse是處理http響應(yīng)的對(duì)象,調(diào)用該對(duì)象的方法,設(shè)置到對(duì)象屬性的內(nèi)容,tomcat最終會(huì)組織為http響應(yīng)報(bào)文
    2022-02-02
  • Spring Data Jpa Mysql使用utf8mb4編碼的示例代碼

    Spring Data Jpa Mysql使用utf8mb4編碼的示例代碼

    這篇文章主要介紹了Spring Data Jpa Mysql使用utf8mb4編碼的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • SpringMVC中解決@ResponseBody注解返回中文亂碼問(wèn)題

    SpringMVC中解決@ResponseBody注解返回中文亂碼問(wèn)題

    這篇文章主要介紹了SpringMVC中解決@ResponseBody注解返回中文亂碼問(wèn)題, 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-04-04
  • mybatis mapper.xml獲取insert后的自增ID問(wèn)題

    mybatis mapper.xml獲取insert后的自增ID問(wèn)題

    這篇文章主要介紹了mybatis mapper.xml獲取insert后的自增ID問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • idea使用war以及war exploded的區(qū)別說(shuō)明

    idea使用war以及war exploded的區(qū)別說(shuō)明

    本文詳細(xì)解析了war與warexploded兩種部署方式的差異及步驟,war方式是先打包成war包,再部署到服務(wù)器上;warexploded方式是直接把文件夾、class文件等移到Tomcat上部署,支持熱部署,開(kāi)發(fā)時(shí)常用,文章分別列出了warexploded模式和war包形式的具體操作步驟
    2024-10-10
  • java charAt()返回?cái)?shù)值型的使用示例

    java charAt()返回?cái)?shù)值型的使用示例

    本文主要介紹了java charAt()返回?cái)?shù)值型的使用示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11

最新評(píng)論

奇台县| 仁化县| 凤山县| 迁西县| 那曲县| 佳木斯市| 临泽县| 长岭县| 长寿区| 铁岭市| 奉贤区| 永安市| 甘南县| 灵丘县| 乌拉特中旗| 福泉市| 怀来县| 长顺县| 邯郸市| 迭部县| 通州区| 宁安市| 太谷县| 北海市| 佛教| 日照市| 确山县| 江北区| 平昌县| 南陵县| 莱西市| 襄汾县| 防城港市| 堆龙德庆县| 宁陕县| 新民市| 紫云| 田林县| 冀州市| 康乐县| 遂溪县|