当前位置: 首页 > wzjs >正文

网站示例开发网站的基本过程

网站示例,开发网站的基本过程,wordpress博客平台,桂林网站建设哪家好背景: 解决前端传入时间参数格式不固定场景,避免接收参数报错时间格式不能序列化。 一、概述 在 Java 后端开发中,处理 JSON 数据时,经常需要对日期时间字段进行反序列化。Java 中常用的日期时间类型是 java.time.LocalDateTime&…

背景:

        解决前端传入时间参数格式不固定场景,避免接收参数报错时间格式不能序列化。

一、概述

        在 Java 后端开发中,处理 JSON 数据时,经常需要对日期时间字段进行反序列化。Java 中常用的日期时间类型是 java.time.LocalDateTime,但前端传入的数据格式可能千差万别,如 "2025-04-05"、"2025-04-05 13:30:00" 或者仅仅是一个时间字符串 "13:30:00"。为了应对这些灵活的时间格式,我们编写了一个自定义的 Jackson 反序列化器 —— FlexibleLocalDateTimeDeserializer

二、设计目标

FlexibleLocalDateTimeDeserializer 的主要目标是:

  1. 兼容多种时间格式:支持 yyyy-MM-dd、yyyy-MM-dd HH:mm:ss 和 HH:mm:ss。
  2. 避免反序列化失败:当遇到不规范的时间格式时,提供合理的默认行为或抛出明确错误。
  3. 与业务数据模型解耦:通过 Jackson 注解绑定到 DTO 字段,无需修改业务逻辑代码即可完成适配。

三、实现细节

通过正则表达式实现格式处理

    • 包含空格 → 使用完整日期时间格式;
    • 匹配日期格式 → 补上 23:59:59;
    • 匹配时间格式 → 结合当前日期生成完整时间戳

定义序列化处理工具


import cn.hutool.core.util.ObjectUtil;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;import java.io.IOException;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;public class FlexibleLocalDateTimeDeserializer extends JsonDeserializer<LocalDateTime> {private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");private static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");private static final DateTimeFormatter TIME_FORMATTER = DateTimeFormatter.ofPattern("HH:mm:ss");@Overridepublic LocalDateTime deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {String value = p.getText();if (value == null || ObjectUtil.isEmpty( value)) return null;try {if (value.contains(" ")) {return LocalDateTime.parse(value, DATE_TIME_FORMATTER);} else if (value.matches("\\d{4}-\\d{2}-\\d{2}")) {String s = LocalDate.parse(value, DATE_FORMATTER).toString() + " 23:59:59";LocalDateTime parse = LocalDateTime.parse(s, DATE_TIME_FORMATTER);return parse;
//                return LocalDate.parse(value, DATE_FORMATTER).atTime(LocalTime.MAX);  // 存数据库为第二天00:00:00} else if (value.matches("\\d{2}:\\d{2}:\\d{2}")) {LocalTime time = LocalTime.parse(value, TIME_FORMATTER);return LocalDateTime.now().with(time);}} catch (Exception e) {throw new RuntimeException("无法解析日期时间:" + value, e);}throw new RuntimeException("未知的日期格式:" + value);}
}

四、实际使用示

在接收前端的dto字段参数加上注解即可。这时候前端传入yyyy-MM-dd、yyyy-MM-dd HH:mm:ss 和 HH:mm:ss格式都可以接收,可自定义填充日期格式。

@JsonFormat(shape = JsonFormat.Shape.STRING)
@JsonDeserialize(using = FlexibleLocalDateTimeDeserializerZero.class)
private LocalDateTime startdate;@JsonFormat(shape = JsonFormat.Shape.STRING)
@JsonDeserialize(using = FlexibleLocalDateTimeDeserializer.class)
private LocalDateTime enddate;

文章转载自:

http://MMarKZQP.yskhj.cn
http://21dJzUEv.yskhj.cn
http://N3UjQZLh.yskhj.cn
http://2BuEnui2.yskhj.cn
http://vDXLRjwd.yskhj.cn
http://4cQsldSd.yskhj.cn
http://o52NL9dT.yskhj.cn
http://JiLu1vhS.yskhj.cn
http://lABUhRG4.yskhj.cn
http://0tc94jo3.yskhj.cn
http://WyFN1RK2.yskhj.cn
http://pX7Ys5pB.yskhj.cn
http://uY7QfAli.yskhj.cn
http://XSlvryWb.yskhj.cn
http://fbJ3P6no.yskhj.cn
http://gvjgN9m6.yskhj.cn
http://g4HWks5b.yskhj.cn
http://0RNkogZf.yskhj.cn
http://Lemd50Ax.yskhj.cn
http://cDk0omq9.yskhj.cn
http://bFGekkJA.yskhj.cn
http://PARulpQj.yskhj.cn
http://eZy5NdP2.yskhj.cn
http://GCH1531w.yskhj.cn
http://eICPUkRw.yskhj.cn
http://SoNQfDrk.yskhj.cn
http://35tsHE9f.yskhj.cn
http://zCo6lbIb.yskhj.cn
http://HwHKS9hN.yskhj.cn
http://WT0uoVcc.yskhj.cn
http://www.dtcms.com/wzjs/730111.html

相关文章:

  • 南京越城建设集团网站u8无可用数据源
  • 国外设计网站欣赏物联网小项目
  • 昌江县住房和城乡建设局网站php mysql网站开发项目
  • 网站部分频道完全不收录了怎么做织梦网站教程
  • 网站建设免费代理附近学电脑在哪里报名
  • 鞍山网站建设找金航青岛建站费用
  • 建网站服务器系统百度免费网站建设
  • 昆明网站建站推广搜索引擎网站建设代码
  • 网站标签图标代码wordpress is
  • 个人网站可以做产品众筹吗店铺推广软文范例
  • 湖南移动官网网站建设东莞公共资源交易中心官网
  • 网站开发制作公自己的网站怎么和百度做友链
  • 简约淘宝网站模板免费下载手机网站架构
  • 静安网站建设关键词优化seo怎么自己做投票网站
  • 石家庄seo网站管理电商网站订货
  • 企业网站优化服务主要围绕哪些要素风格 特别的网站
  • 电子商务网站的建设方法上海公司法人落户条件
  • 网站设计建设专业服务德州宁津建设局网站
  • 烟台提供网站设计制作网页传奇游戏黑屏怎么解决
  • 自己怎么做卖服装的网站外贸网站谷歌seo
  • 网站设计红色表示什么赣州信息港房产网
  • 大型网站制作流程山东网站排名优化公司
  • 红色主题网站模板开个网站需要什么
  • 如何做可以微信转发的网站网络科技有限公司怎么挣钱
  • 设计教程网站推荐威海市建设局网站
  • 网站首页的文字下拉怎么做建设公司网站需要什么
  • 成都o2o网站建设空中花园做网站的公司
  • 太原新建火车站短网址链接生成
  • 做衣服视频有些什么网站旅游网站建设的方向
  • 安平丝网网站建设wordpress怎么修改图片