一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 詳解Java關于時間格式化的方法

詳解Java關于時間格式化的方法

2020-09-07 00:13l去留無心 Java教程

這篇文章主要介紹了詳解Java關于時間格式化的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

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

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

如果一個DTO類里面有很多關于時間字段需要格式化,就會降低開發效率,產生很多重復臃腫的代碼。并且有的項目用Date,有的項目會用LocalDateTime

而此時如果能將時間格式統一配置,就可以省下更多時間專注于業務開發了。

接下來介紹SpringBoot中常用的對時間或日期處理的方式

一、@JsonFormat 注解

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

?
1
2
3
4
5
6
<!-- 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注解需要用在實體類的時間字段上,對應的字段才能進行格式化。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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;
}
?
1
2
3
4
5
6
public TestDTO get(){
    TestDTO testDTO = new TestDTO();
    testDTO.setLocalDateTime(LocalDateTime.now());
    testDTO.setDate(new Date());
    return testDTO;
  }

如下所示

詳解Java關于時間格式化的方法

還有一種可以全局定義的

二、@JsonComponent 注解 (全局)

配置類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
@JsonComponent
public class DateFormatConfig {
 
  @Value("${spring.jackson.date-format:yyyy-MM-dd HH:mm:ss}")
  private String pattern;
 
  // date 類型全局時間格式化
  @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 類型全局時間格式化
  @Bean
  public LocalDateTimeSerializer localDateTimeDeserializer() {
    return new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(pattern));
  }
 
  @Bean
  public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
    return builder -> builder.serializerByType(LocalDateTime.class, localDateTimeDeserializer());
  }
}

這樣我們就不用加注解了,也可以實現格式化

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
@JsonComponent
public class DateFormatConfig {
 
  @Value("${spring.jackson.date-format:yyyy-MM-dd HH:mm:ss}")
  private String pattern;
 
  // date 類型全局時間格式化
  @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 類型全局時間格式化
  @Bean
  public LocalDateTimeSerializer localDateTimeDeserializer() {
    return new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(pattern));
  }
 
  @Bean
  public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
    return builder -> builder.serializerByType(LocalDateTime.class, localDateTimeDeserializer());
  }
}

詳解Java關于時間格式化的方法

到此這篇關于詳解Java關于時間格式化的方法的文章就介紹到這了,更多相關Java 時間格式化內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/qq_41937388/article/details/108412315

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲国产精品网 | 国内精品久久久久香蕉 | 欧美人与日本人xx在线视频 | 含羞草国产亚洲精品岁国产精品 | 国内老司机精品视频在线播出 | 天天草人人草 | kkkk4444在线看片 | 99精品网站 | 久久亚洲精品AV无码四区 | 好姑娘在线视频观看免费 | 欧美图片小说 | 国产香蕉一区二区在线观看 | 天天做天天爱天天一爽一毛片 | 亚洲人成高清毛片 | 网站视频免费 | 美女下面被cao出水 美女污视频 | 久久精视频| 女人肮脏的交易中文字幕未删减版 | 亚洲444777KKK在线观看 | 教室眠催白丝美女校花 | 边摸边吃奶又黄激烈视频韩国 | 免费一级毛片完整版在线看 | juliaann丝袜精品系列 | 日本不卡在线一区二区三区视频 | 天天天天天天天操 | 欧美透逼视频 | 日本十大顶级绝伦推理片 | 国产精品亚洲片夜色在线 | 成功精品影院 | 99久久精品无码一区二区毛片 | 人妖欧美一区二区三区四区 | 国产1广场舞丰满老女偷 | 日本 片 成人 在线 日b视频免费 | 日本视频一区在线观看免费 | 无套啪啪| 99久久综合精品免费 | 全程粗语对白视频videos | 亚州性夜夜射在线观看 | 2018天天弄 | 羞羞一区二区三区四区片 | 好男人好资源在线观看免费 |