时间格式化转换及时间比较compareTo,Controller层接收参数格式化,从数据源头解决时间格式错误数据对接口的影响

/**
* 时间格式的转换:在具体报错的地方做转换,可能不能从根本上面解决问题。不排除在其他的代码位置也会使用该错误格式的数据。
*
* 1.数据库层:可以将数据源的数据批量格式化 yyyy-MM-dd (错误格式:yyyy-MM-dd 00:00:00)
* update tbl_test set ext1 = left(ext1,10) where RIGHT(`ext1`,8) = '00:00:00' and `create_date` >= '2022-10-01 00:00:00'
*
* ## 没有数据需要二次处理,查询需要批量更新的数据
* select * from tbl_test where RIGHT(`ext1`,8) = '00:00:00' and `create_date` >= '2022-10-01 00:00:00'
*
* 2.接口层:从源头接口入参的方法处 做错误格式的参数 做兼容处理。按统一的格式来作为入参。
*/

A,compareTo(B)

//compareTo 大于 = 1     A>B
//compareTo 小于 = -1   A < B
//compareTo 等于 = 0    A = B

package com.example.core.mydemo.date;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; public class DateTime2Test { public static final DateTimeFormatter DF2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
public static final DateTimeFormatter DF22 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); public static void main(String[] args) {
String ss = "2023-11-26 21:00:15";
System.out.println("ss=" + ss); ss = "2023-11-26 21:00"; /**
* 时间格式的转换:在具体报错的地方做转换,可能不能从根本上面解决问题。不排除在其他的代码位置也会使用该错误格式的数据。
*
* 1.可以将数据源的数据批量格式化 yyyy-MM-dd
* update tbl_test set ext1 = left(ext1,10) where RIGHT(`ext1`,8) = '00:00:00' and `create_date` >= '2022-10-01 00:00:00'
*
* ## 没有数据需要二次处理
* select * from tbl_test where RIGHT(`ext1`,8) = '00:00:00' and `create_date` >= '2022-10-01 00:00:00'
*
* 2.从源头接口入参的方法处 做错误格式的参数 做兼容处理。
*/
if(ss.length() == 16){
ss = ss + ":00";
}
LocalDateTime rentDateTime = LocalDateTime.parse(ss, DF2);
System.out.println("rentDateTime=" + rentDateTime); DateTimeFormatter YYYYMMDD_FORMATTER = DateTimeFormatter.ofPattern("yyyyMMdd");
String dateTimeStr = LocalDate.now().format(YYYYMMDD_FORMATTER);
StringBuffer buffer = new StringBuffer(dateTimeStr);
buffer.append("080000");
Long dateTime = Long.valueOf(buffer.toString());
System.out.println("dateTime=" + dateTime); // Long revertTime = 20231130140000L;
Long revertTime = 20231204080000L; //compareTo 大于 = 1
//compareTo 小于 = -1
//compareTo 等于 = 0
System.out.println("compareTo = " + dateTime.compareTo(revertTime)); //找出revertTime大于当前时间的,标识为“符合”
if (dateTime.compareTo(revertTime) == 1 || dateTime.compareTo(revertTime) == 0) {
System.out.println("不符合");
}else{
System.out.println("符合");
} }
}

时间格式化转换及时间比较compareTo,Controller层接收参数格式化,从数据源头解决时间格式错误数据对接口的影响的更多相关文章

  1. SpringMVC的controller层接收来自jsp页面通过<a href="/user/userUpdateInfo/>的中文乱码问题

    这种情况是,jsp页面的中文正常显示,数据的中文也是正常显示,但是在Controller层接收到的中文是乱码,如下图所示: 解决方法:在Controller层对前台传递的中文乱码进行处理,将它转换成u ...

  2. Spring+MVC Controller层接收App端请求的中文参数乱码问题。

    在正文之前,说明下Filter的作用: 过滤器顾名思义就是进行过滤的,可以实现代码的定向执行和预处理.通俗点说法filter相当于加油站,request是条路,response是条路,目的地是serv ...

  3. springmvc controller层接收List类型的参数

    Spring MVC在接收集合请求参数时,需要在Controller方法的集合参数里前添加@RequestBody,而@RequestBody默认接收的enctype (MIME编码)是applica ...

  4. Spring Boot之 Controller 接收参数和返回数据总结(包括上传、下载文件)

            一.接收参数(postman发送) 1.form表单 @RequestParam("name") String name 会把传递过来的Form表单中的name对应 ...

  5. form表单提交controller层接收到的值为乱码的问题

    今天遇到个中文乱码问题,大体情况是这样的:前台有一个form表单,其中有几个input的控件,值是带中文的,form表单只设置了id='form1' method='post'  action='xx ...

  6. 重大发现 springmvc Controller 高级接收参数用法

    1.  数组接收 @RequestMapping(value="deleteRole.json") @ResponseBody public Object deleteRole(S ...

  7. @Springboot搭建项目controller层接收json格式的对象失败

    今天在使用swagger2测试的时候出错 1.@requestBody注解常用来处理content-type不是默认的application/x-www-form-urlcoded编码的内容,比如说: ...

  8. SpringMVC Controller接收参数总结

    本文中Controller的开发环境如下表格所示,Maven对应POM配置如下代码段所示: 系统/工具 版本号OS Windows 7 Home BasicJava 1.7.0_79Eclipse M ...

  9. SpringMVC入门(二)—— 参数的传递、Controller方法返回值、json数据交互、异常处理、图片上传、拦截器

    一.参数的传递 1.简单的参数传递 /* @RequestParam用法:入参名字与方法名参数名不一致时使用{ * value:传入的参数名,required:是否必填,defaultValue:默认 ...

  10. Junit mockito 测试Controller层方法有Pageable异常

    1.问题 在使用MockMVC+Mockito模拟Service层返回的时候,当我们在Controller层中参数方法调用有Pageable对象的时候,我们会发现,我们没办法生成一个Pageable的 ...

随机推荐

  1. N个技巧,编写更高效 Dockerfile|云效工程师指北

    简介:云原生时代下软件的构建和部署离不开容器技术.提到容器,几乎大家下意识都会联想到 Docker .而 Docker 中有两个非常重要的概念,一个是Image(镜像),一个是Container(容器 ...

  2. 贝壳基于 Flink 的实时计算演进之路

    简介: 贝壳找房在实时计算之路上的平台建设以及实时数仓应用. 摘要:贝壳找房大数据平台实时计算负责人刘力云带来的分享内容是贝壳找房的实时计算演进之路,内容如下: 发展历程 平台建设 实时数仓及其应用场 ...

  3. 5分钟搞定AlertManager接入短信、语音等10+种通知渠道

    ​简介: Alert Manager是开源监控系统Prometheus中用于处理告警信息的服务,通过将日志服务开放告警配置为Alert Manager中的一个Receiver,可以将Alert Man ...

  4. vue使用vant的van-tabs+tag在选项卡展示该内容有几条的提示

    1.直接写用v-if判断下标展示,会滚动.pass! 2.定位,各种定位,相对各种父元素各种定位,还是会滚,因为tab内容一定滚动,pass 3.手写选项卡+v-if判断,这肯定可行,但本着能用ui组 ...

  5. vue-router设置页面切换滑动效果的方法及解决遇到的坑

    先上gif:这里演示顺序是1232121 1.router.js中配置入口路由 {     path: '/',     redirect: '/index'   } 2.main.js中new vu ...

  6. SpringBoot实现WebSocket发送接收消息 + Vue实现SocketJs接收发送消息

    SpringBoot实现WebSocket发送接收消息 + Vue实现SocketJs接收发送消息 参考: 1.https://www.mchweb.net/index.php/dev/887.htm ...

  7. 如何在M1 MACBOOK上准备好ORB-SLAM2的环境

    1. 环境 M1 Macbook Air Parallels Desktop 17 关于虚拟机,在之前尝试了UTM,但是性能欠佳,卡顿情况比较多,而且未能解决联网问题,最终只能含泪放弃 Paralle ...

  8. Go语言基础之并发 goroutine chan

    参考文档: https://www.liwenzhou.com/posts/Go/14_concurrence/ http://www.5lmh.com/并发编程/channel.html 示例一: ...

  9. AI编译器CINN v.s TVM 中CodeGen 源码解读

    如下的技术点梳理仅以「日常优化工作」为牵引点,涉及哪个模块,就具体去看哪个模块的代码. 一.CINN 框架 CINN 中CodeGen之后的代码编译主要交给了Compiler类来负责.核心的函数主要是 ...

  10. iceoryx源码阅读(六)——共享内存创建

    目录 1 共享内存的组织 2 共享内存创建 2.1 IceOryxRouDiMemoryManager::createAndAnnounceMemory 2.2 RouDiMemoryManager: ...