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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲精品国产成人99久久 | 青草免费在线观看 | 激情五月姐姐 | 免费国产一级观看完整版 | 色图图片 | 国产女主播在线播放一区二区 | 国产麻豆视频 | 毛毛片在线| 日本三不卡 | 四虎永久在线精品国产 | 亚洲天堂中文 | 冰漪丰满大乳人体图片欣赏 | 亚洲成人免费观看 | 性做久久久久久久久浪潮 | 免费视频完整版在线观看网站 | 五月天色综合 | 亚洲视频免费 | 99热免费在线观看 | 男人的天堂久久精品激情 | 近亲乱中文字幕 | 2023最新伦理片 | 亚洲第一永久色 | 亚洲免费二区 | 色菇凉天天综合网 | 美女操批| 人妖女天堂视频在线96 | 欧美一级久久久久久久大片 | 成人无高清96免费 | 亚洲精品免费在线观看 | 爽好舒服宝贝添奶吻戏 | 1717国产精品视频免费 | 欧美国产日韩在线播放 | 亚洲精品www久久久久久 | 女主被男主做哭失禁高h | 亚洲成年网 | 国产中文在线视频 | 91综合在线视频 | jzzjlzz亚洲乱熟在线播放 | 天作谜案免费完整版在线观看 | 精品久久久久国产免费 | 毛片视频网站 |