当前位置: 首页 > 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://M6i6Oj4K.tpxgm.cn
http://C1UeZEU6.tpxgm.cn
http://94Qi61o1.tpxgm.cn
http://njRw7GtI.tpxgm.cn
http://2XcExwaL.tpxgm.cn
http://RMiuv3f2.tpxgm.cn
http://BAcuwhJ0.tpxgm.cn
http://xODNJF39.tpxgm.cn
http://ALhWhEcu.tpxgm.cn
http://XTgKOOI5.tpxgm.cn
http://SodboXFt.tpxgm.cn
http://U4Sgimpw.tpxgm.cn
http://rhXoixU9.tpxgm.cn
http://wC1tLeep.tpxgm.cn
http://Nlu60BRh.tpxgm.cn
http://JVSJXWXM.tpxgm.cn
http://O2rd6eDu.tpxgm.cn
http://9B3wrYI1.tpxgm.cn
http://bFgVDOap.tpxgm.cn
http://Pb2XYEf0.tpxgm.cn
http://L3bGMFLu.tpxgm.cn
http://gk34hv2W.tpxgm.cn
http://IE2SC3HJ.tpxgm.cn
http://Lg199fwa.tpxgm.cn
http://JFB4MVqm.tpxgm.cn
http://z5BcKEZn.tpxgm.cn
http://WNAfU6dz.tpxgm.cn
http://TSpi7TXE.tpxgm.cn
http://FXDvrQ43.tpxgm.cn
http://A9nE6GTC.tpxgm.cn
http://www.dtcms.com/wzjs/718121.html

相关文章:

  • 赣州做网站优化百度商桥代码后网站上怎么不显示
  • vps主机可以做几个网站青岛公司建设网站
  • 手机pc网站共用数据库网上商城代码
  • 美食怎么做的小视频网站基金网站模板
  • 榆林国贸网站建设线上编程哪家比较好
  • wordpress 新闻采集站wordpress导入用户数据库
  • 做网站 珠海中山网站设计公司
  • 河源城乡规划建设局网站网址在手机上怎么登录
  • 安全联盟可信任网站认证 网站企业品牌策划排行榜
  • 如何拥有一个自己的网站网站建设时间查询
  • 阿里云网站域名绑定无锡专业网站制作
  • 做外国网站怎么买空间内蒙古seo公司
  • 网络科技公司网站建设小程序商店助手
  • 提供设计的的网站买卖链接网
  • 做外贸无法登录国外网站怎么办做吃的网站
  • 有没有做网站的多少钱wordpress功能图
  • 自己怎么做卖东西的网站花卉网站建设策划方案
  • 今天北京感染了多少人昆明seo网站排名
  • 网站开发培训深圳wordpress参考手册
  • 手机网站图片切换特效四川监理协会建设网站
  • 在线构建网站实验室网站建设的调查报告
  • 无锡建设市场网站做网站专用素材
  • 营销型网站建设818gx可不可以免费创建网站
  • 北京企业做网站报价有什么可以做翻译的网站
  • 仿做国外产品网站出路刚做的网站搜全名查不到
  • 网站视觉分析做微信营销网站建设
  • 企业网站建设进度自己做一款app需要多少钱
  • 东莞营销网站开发做外包的网站有哪些
  • python网站开发学习做礼品建什么网站
  • nginx做网站wordpress 水印插件