国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

springboot~統(tǒng)一處理日期請求參數java.utils.Date和java.time.LocalDate

這篇具有很好參考價值的文章主要介紹了springboot~統(tǒng)一處理日期請求參數java.utils.Date和java.time.LocalDate。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

日期類型的參數在從前端通過url參數傳遞到后端時,它會被進行格式化,如果格式化失敗會出現(xiàn)400的錯誤,像日期格式默認會使用yyyy/MM/dd的格式,如果希望自己去個性化配置,我們可以通過實現(xiàn)WebMvcConfigurer接口的addFormatters方法來完成。文章來源地址http://www.zghlxwxcb.cn/news/detail-458337.html

java.time.LocalDate統(tǒng)一處理

  • DateTimeFormatterRegistrar實例的setTimeFormatter,setDateFormattersetDateTimeFormatter可以很方便的指定LocalDate這些類型的格式
  • 通過定義DateFormatter對象,可以聲明java.util.Date類型的格式,但默認的,你只能定義一個java.util.Date對應的格式,多個的話,被會覆蓋
  • 通過實現(xiàn)org.springframework.format.Formatter<Date>接口,來定義多個java.util.Date對應的格式,它可以進行遍歷,并進行最優(yōu)的格式匹配

代碼的實現(xiàn)

/**
 * WebMvc配置.
 * @author lind
 * @date 2023/5/24 23:46
 * @since 1.0.0
 */
@Configuration
public class WebMvcConfiguration implements WebMvcConfigurer {

	/**
	 * 增加GET請求參數中時間類型轉換,注意是LocalTime,LocalDate和LocalDateTime,因為你配置的是DateTimeFormatter.
	 * <ul>
	 * <li>HH:mm:ss -> LocalTime</li>
	 * <li>yyyy-MM-dd -> LocalDate</li>
	 * <li>yyyy-MM-dd HH:mm:ss -> LocalDateTime</li>
	 * </ul>
	 * @param registry
	 */
	@Override
	public void addFormatters(FormatterRegistry registry) {
		DateTimeFormatterRegistrar registrar = new DateTimeFormatterRegistrar();
		// LocalDate,LocalTime,LocalDateTime格式化
		registrar.setTimeFormatter(DatePattern.NORM_TIME_FORMATTER);
		registrar.setDateFormatter(DatePattern.NORM_DATE_FORMATTER);
		registrar.setDateTimeFormatter(DatePattern.NORM_DATETIME_FORMATTER);
		registrar.registerFormatters(registry);
		// java.util.Date日期格式化
		registry.addFormatter(new CompositeFormatter());
	}

	/**
	 * java.util.Date日期格式化.
	 */
	private static class CompositeFormatter implements Formatter<Date> {

		private final List<Formatter<Date>> formatters = Arrays.asList(new DateFormatter("yyyy-MM-dd HH:mm:ss"),
				new DateFormatter("yyyy-MM-dd"), new DateFormatter("HH:mm:ss"));

		@Override
		public Date parse(String text, Locale locale) throws ParseException {
			for (Formatter<Date> formatter : formatters) {
				try {
					return formatter.parse(text, locale);
				}
				catch (ParseException ignored) {
				}
			}
			throw new ParseException("Unable to parse date: " + text, 0);
		}

		@Override
		public String print(Date date, Locale locale) {
			return formatters.get(0).print(date, locale);
		}

	}

}

測試代碼與截圖

  • 代碼
    @GetMapping("print")
	public ResponseEntity print(@RequestParam LocalDateTime date, @RequestParam Date simple) {
		Map<String, Object> result = new HashMap<>();
		result.put("time", date);
		result.put("simple", simple);
		return ResponseEntity.ok(result);
	}
  • 調用和結果
    springboot~統(tǒng)一處理日期請求參數java.utils.Date和java.time.LocalDate

到了這里,關于springboot~統(tǒng)一處理日期請求參數java.utils.Date和java.time.LocalDate的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包