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

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

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

服務器之家 - 編程語言 - Java教程 - 解決springboot 實體類String轉Date類型的坑

解決springboot 實體類String轉Date類型的坑

2022-02-27 15:27DemonsPan Java教程

這篇文章主要介紹了解決springboot 實體類String轉Date類型的坑,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

springboot 實體類String轉Date類型

前端傳入一個String的時間字符串如:2019-07-18 23:59:59

后端實體類要在頭頂加注解:

@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")

解決springboot 實體類String轉Date類型的坑

不然會出現報錯

解決springboot 實體類String轉Date類型的坑

 

Date解析String類型的參數

1.首先建立String to Date 的解析實現

import org.apache.commons.lang3.StringUtils;
import org.springframework.core.convert.converter.Converter;
import java.text.SimpleDateFormat;
import java.util.Date;
public class StringToDateConverter implements Converter<String, Date> {
  private static final String dateFormat = "yyyy-MM-dd HH:mm:ss";
  private static final String shortDateFormat = "yyyy-MM-dd";
  @Override
  public Date convert(String value) {
      if (StringUtils.isEmpty(value)) {
          return null;
      }
      value = value.trim();
      try {
          if (value.contains("-")) {
              SimpleDateFormat formatter;
              if (value.contains(":")) {
                  formatter = new SimpleDateFormat(dateFormat);
              } else {
                  formatter = new SimpleDateFormat(shortDateFormat);
              }
              Date dtDate = formatter.parse(value);
              return dtDate;
          } else if (value.matches("^\\d+$")) {
              Long lDate = new Long(value);
              return new Date(lDate);
          }
      } catch (Exception e) {
          throw new RuntimeException(String.format("parser %s to Date failed", value));
      }
      throw new RuntimeException(String.format("parser %s to Date failed", value));
  }
}

2.創建全局的解析配置

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.convert.support.GenericConversionService;
import org.springframework.web.bind.support.ConfigurableWebBindingInitializer;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;
import javax.annotation.PostConstruct;
@Configuration
public class DateHandlerAdapter {
  @Autowired
  private RequestMappingHandlerAdapter handlerAdapter;
  /**
   * 增加字符串轉日期的全局適配器
   */
  @PostConstruct
  public void initEditableAvlidation() {
      ConfigurableWebBindingInitializer initializer = (ConfigurableWebBindingInitializer) handlerAdapter
              .getWebBindingInitializer();
      if (initializer.getConversionService() != null) {
          GenericConversionService genericConversionService = (GenericConversionService) initializer
                  .getConversionService();
          genericConversionService.addConverter(new StringToDateConverter());
      }
  }
}

添加完這兩個文件以后 在傳參數類型為Date的參數時就不會再報 date解析失敗的錯誤了。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/weixin_42439513/article/details/96477831

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 九九九九九九 | 午夜福到在线4国产 | 成人影音先锋 | 国产福利你懂的 | 午夜 在线播放 | 国产啪精品视频网给免丝袜 | 日韩影院在线 | bbox撕裂bass孕妇 | 国产精品午夜国产小视频 | 日韩精品久久不卡中文字幕 | 叉逼视频| 四虎影视在线影院在线观看观看 | 亚洲欧美天堂 | 久久久免费热线精品频 | 日韩一区在线观看 | 欧美成人精品福利网站 | 色哟呦| 12345国产精品高清在线 | 精品一区二区三区免费站 | 国产三级跑 | 公交车上插入 | 91精品国产品国语在线不卡 | 很黄的网站在线观看 | 99视频免费在线观看 | 奇米白色 | 掰开逼操 | 狠狠躁夜夜躁人人爽天天miya | 草莓视频幸福宝 | 国产尤物视频 | 荡女人人爱全文免费阅读 | 亚洲欧美日韩另类在线一 | 好逼天天有 | 男女操bb| 精品91一区二区三区 | 欧美日韩精品一区二区三区高清视频 | 精品日韩欧美一区二区三区在线播放 | 欧美一区二区三区免费观看视频 | 国产伦久视频免费观看视频 | 91tv在线| 熟睡迷j系列小说 | 大香线一本 |