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

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - SpringBoot中時(shí)間類型 序列化、反序列化、格式處理示例代碼

SpringBoot中時(shí)間類型 序列化、反序列化、格式處理示例代碼

2020-08-27 12:38趙小胖0914 Java教程

這篇文章主要介紹了SpringBoot中時(shí)間類型 序列化、反序列化、格式處理示例代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

SpringBoot】 中時(shí)間類型 序列化反序列化、格式處理

Date

yml全局配置

?
1
2
3
4
spring:
 jackson:
  time-zone: GMT+8
  date-format: yyyy-MM-dd HH:mm:ss #配置POST請(qǐng)求Body中Date時(shí)間類型序列化格式處理,并返回

請(qǐng)求參數(shù)類型轉(zhuǎn)換

?
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
/**
 * 時(shí)間Date轉(zhuǎn)換
 * 配置GET請(qǐng)求,Query查詢Date時(shí)間類型參數(shù)轉(zhuǎn)換
 */
@Component
public class DateConverter implements Converter<String, Date> {
 @Override
 public Date convert(String source) {
  if (StringUtils.isBlank(source)) {
   return null;
  }
  if (source.matches("^\\d{4}-\\d{1,2}-\\d{1,2}$")) {
   return parseDate(source.trim(), "yyyy-MM-dd");
  }
  if (source.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}:\\d{1,2}$")) {
   return parseDate(source.trim(), "yyyy-MM-dd HH:mm:ss");
  }
  throw new IllegalArgumentException("Invalid value '" + source + "'");
 }
 
 public Date parseDate(String dateStr, String format) {
  Date date = null;
  try {
   date = new SimpleDateFormat(format).parse(dateStr);
  } catch (ParseException e) {
   log.warn("轉(zhuǎn)換{}為日期(pattern={})錯(cuò)誤!", dateStr, format);
  }
  return date;
 }
}

JDK8-時(shí)間類型-LocalDateTime、LocalDate、LocalTime

?
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/**
 * 序列化,反序列化,格式處理
 *
 * @author zc
 * @date 2020/7/9 01:42
 */
@Slf4j
@Configuration
public class JacksonCustomizerConfig {
 
  @Value("${spring.jackson.date-format:yyyy-MM-dd HH:mm:ss}")
  private String localDateTimePattern;
 
  @Value("${spring.jackson.local-date-format:yyyy-MM-dd}")
  private String localDatePattern;
 
  @Value("${spring.jackson.local-time-format:HH:mm:ss}")
  private String localTimePattern;
 
  @Bean
  public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
    return builder -> {
      builder.serializerByType(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(localDateTimePattern)));
      builder.serializerByType(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern(localDatePattern)));
      builder.serializerByType(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern(localTimePattern)));
      builder.deserializerByType(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(localDateTimePattern)));
      builder.deserializerByType(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ofPattern(localDatePattern)));
      builder.deserializerByType(LocalTime.class, new LocalTimeDeserializer(DateTimeFormatter.ofPattern(localTimePattern)));
    };
  }
 
    /**
   * 時(shí)間LocalDateTime轉(zhuǎn)換
   */
  @Component
  public static class LocalDateTimeConverter implements Converter<String, LocalDateTime> {
    @Override
    public LocalDateTime convert(String source) {
      if (StringUtils.isBlank(source)) {
        return null;
      }
      if (source.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}:\\d{1,2}$")) {
        return LocalDateTime.parse(source, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
      }
      throw new IllegalArgumentException("Invalid value '" + source + "'");
    }
  }
 
  /**
   * 時(shí)間LocalDate轉(zhuǎn)換
   */
  @Component
  public static class LocalDateConverter implements Converter<String, LocalDate> {
    @Override
    public LocalDate convert(String source) {
      if (StringUtils.isBlank(source)) {
        return null;
      }
      if (source.matches("^\\d{4}-\\d{1,2}-\\d{1,2}$")) {
        return LocalDate.parse(source, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
      }
      throw new IllegalArgumentException("Invalid value '" + source + "'");
    }
  }
 
}

趙小胖個(gè)人博客:https://zc.happyloves.cn:4443/wordpress/

總結(jié)

到此這篇關(guān)于SpringBoot中時(shí)間類型 序列化、反序列化、格式處理示例代碼的文章就介紹到這了,更多相關(guān)SpringBoot中時(shí)間類型 序列化、反序列化、格式處理內(nèi)容請(qǐng)搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

原文鏈接:https://www.cnblogs.com/Sky0914/archive/2020/08/26/13568746.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 福利视频一区二区牛牛 | 精品人伦一区二区三区潘金莲 | 亚洲mv国产精品mv日本mv | 性欧美hd| www久久com | 欧洲网色偷偷亚洲男人的天堂 | 青柠影院在线观看免费完整版1 | 免费特黄一级欧美大片 | 四虎影视永久免费视频观看 | 欧美18-19sex性处视频 | 日韩高清在线免费看 | 青青草伊人久久 | 国产精品国产三级在线专区 | 亚洲视频一区二区在线观看 | 精品一久久香蕉国产线看播放 | caoporn超碰最新地址进入 | 亚洲男男video| 国产精品久久免费 | 故意短裙公车被强好爽在线播放 | 关晓彤被调教出奶水的视频 | 国产成人精品综合在线观看 | 国产免费小视频在线观看 | 幻女free性俄罗斯第一次摘花 | 国产 国语对白 露脸正在播放 | h肉动漫在线视频无修无遮挡 | 天天操婷婷 | 极品奶妈漫画 | 天天摸天天操天天爽 | 精品国产乱码久久久久久软件 | 1024毛片| se01在线看片 | 日本免费精品视频 | 日本一区二区三区在线 观看网站 | 亚洲欧美日韩特级毛片 | www一区二区 | 日本亚洲免费 | aⅴ天堂小视频 | asianfemdom冷柔女王 | 欧美一级裸片又黄又裸 | 1986葫芦兄弟全集免费观看第十集 | 亚洲第一区二区快射影院 |