中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • SpringBoot中時間類型 序列化、反序列化、格式處理示例代碼

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

發布時間:2020-10-15 06:38:33 來源:腳本之家 閱讀:216 作者:趙小胖0914 欄目:開發技術

【SpringBoot】 中時間類型 序列化、反序列化、格式處理

Date

yml全局配置

spring: 
 jackson:
  time-zone: GMT+8
  date-format: yyyy-MM-dd HH:mm:ss #配置POST請求Body中Date時間類型序列化格式處理,并返回

請求參數類型轉換

/**
 * 時間Date轉換
 * 配置GET請求,Query查詢Date時間類型參數轉換
 */
@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("轉換{}為日期(pattern={})錯誤!", dateStr, format);
  }
  return date;
 }
}

JDK8-時間類型-LocalDateTime、LocalDate、LocalTime

/**
 * 序列化,反序列化,格式處理
 *
 * @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)));
    };
  }
 
 	/**
   * 時間LocalDateTime轉換
   */
  @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 + "'");
    }
  }

  /**
   * 時間LocalDate轉換
   */
  @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 + "'");
    }
  }
 
}

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

總結

到此這篇關于SpringBoot中時間類型 序列化、反序列化、格式處理示例代碼的文章就介紹到這了,更多相關SpringBoot中時間類型 序列化、反序列化、格式處理內容請搜索億速云以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持億速云!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

比如县| 洱源县| 兴安县| 大名县| 福泉市| 健康| 军事| 荥经县| 祁东县| 孙吴县| 泗阳县| 广宗县| 南充市| 成都市| 建德市| 岗巴县| 太仓市| 普安县| 松桃| 县级市| 云梦县| 历史| 阳原县| 老河口市| 玛多县| 科尔| 武乡县| 新巴尔虎左旗| 威信县| 略阳县| 沙雅县| 轮台县| 大同市| 固安县| 镇原县| 榆林市| 衡东县| 务川| 珠海市| 内乡县| 柏乡县|