时间段查询将00:00:00更换成23:59:59
目录
一.问题描述
二.解决问题
2.1.思路一(时间戳赋值)
2.2思路二(LocalDateTime 方法赋值)
三.总结
一.问题描述
在我们作web项目的时候总会有时间段的查询条件
例如:
问题:
前端传到后台的时间: reportStartTime: 2023-01-01 00:00:00
reportEndTime: 2023-01-13 00:00:00
在这种时间段查询是前端用时间组件写出来的,但是列表的上报时间是从数据库中读出来的, 但是数据库中的上报时间是
如果用sql查询的话 2023-01-13 10:49:23 这个时间是查不到的
但是我们页面中的上报时间是date类型的
如图:
所以就是时间组件的最火传过来的时间都能看到
如图:
二.解决问题
2.1.思路一(时间戳赋值)
在出现这个问题后, 我曾经想过, 将reportEndTime 用时间戳的方式给reportEndTime 重新赋值
Long endtime = reportEndTime.getTime();
//加一天减一秒
Long endTime+(1000*60*60*24-1000)
//时间戳转dateTime
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
没有中间new Long(timeStamp),因为他们都是精确到毫秒的时间戳,不用再乘以1000进行转换 long longTimeStamp = new Long(new Long(timeStamp) * 1000); Date date = new Date(longTimeStamp); String dareString = simpleDateFormat.format(date); return dareString;
2.2思路二(LocalDateTime 方法赋值)
LocalDateTime简介:
1. java.util.Date是用于表示一个日期和时间的对象(注意与java.sql.Date区分,后者用在数据库中没有格式化的Date),它打印出的日期可读性差,可以使用SimpleDateFormat对时间进行格式化,但SimpleDateFormat又是线程不安全,包括format和parse方法,而在时间的计算方面不是很方便。
2. java.util.Canlendar 可以用于获取并设置年、月、日、时、分、秒,它和Date比,主要多了一个可以做简单的日期和时间运算的功能,Canlendar 变量是全局变量,会导致脏变量情况产生,并且这个共享变量没有做线程安全控制,也就是多线程的情况下是线程不安全的。
3. Java8出的新的时间日期API都是线程安全的比如LocalDate、LocalTime、LocalDateTime这三个类,计算功能强大,并且性能更好,代码更简洁。
看小demo: 这里用到了plusDay(1) 加一天 minusSeconds(1) 减一秒 具体LocalDateTime方法和讲解看文章:LocalDateTime用法_localdatetime默认加三个月_遨游在知识的海洋里无法自拔的博客-CSDN博客
import java.text.ParseException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;public class DateTest {public static void main(String[] args) throws ParseException {//具有转换功能的对象DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");//设置参数String startTime = "2023-01-01 00:00:00";String endTime = "2023-01-13 00:00:00";// //String转DateTime
// Date starDate=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(startTime);
// Date endDate=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(endTime);// LocalDateTime startDate = LocalDateTime.parse(startTime,df);LocalDateTime endDate = LocalDateTime.parse(endTime,df);//将 endTime 加一天再减一秒LocalDateTime localDateTime = endDate.plusDays(1);//减一秒LocalDateTime endDateTime = localDateTime.minusSeconds(1);System.out.println(startTime);System.out.println(endDateTime);}
}
三.总结
1.LocalDateTime 是一个处理时间问题很灵活的api 有兴趣的话和我一样的初学者可以了解学习一下
2.除这两种方法还有其他的方法吗, 例如hutool处理时间的api DateUtil 处理时间的工具类, 如果有其他更好的方法请在评论区分享链接, 一起讨论
时间段查询将00:00:00更换成23:59:59相关推荐
- 按时间检索中,开始时间为00:00:00,结束时间为23:59:59
开发中遇到问题,按时间检索,传值为年月日,到sql就会默认为时间00:00:00,在java中可以通过字符串拼接的方式实现. publicstatic Date getStartTimeOfDate( ...
- SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59
SqlDateTime 溢出.必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM之间 2009年10月10日 星期六 17:11 错误提示:" ...
- php 00截断,00截断之追本溯源
0x00,%00,/00 之类的截断,本质都是一样的,只是不同表现方式而已. 00截断在我写这篇文章之前,一直是很模糊的概念.看到别人利用成功,等到真要使用时又手足无措.用了一些时间学习了一下原理,本 ...
- 【.NET】SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM之间
#背景 向sqlserver数据库中一个datetime字段插入DateTime.MinValue时, 出现问题: SqlDateTime 溢出.必须介于 1/1/1753 12:00:00 AM 和 ...
- 实现计时、时钟,实时获取当前年月日时分秒,记录时间(获取当前的时间,开始计时,计时过程相当于你的电脑时钟)0000年00月00日 00:00:00
<!doctype html> <html lang="en"> <head><meta charset="UTF-8" ...
- 获取当天时间的开始和结束 00:00:00和23:59:59
例如:2014-07-09 00:00:00 select convert(varchar(10),getdate(),23)+' 00:00:00' 例如:2014-07-09 23:59:59 s ...
- 子报表修改后需要重新导入,0.00显示.00的调整方法
水晶报表笔记: 子报表修改后需要重新导入 0.00显示.00的调整方法:数字格式的内容,右键,设置对象格式, 自定义,前导值 勾上,默认值,选择0 转载于:https://www.cn ...
- Android之获取到音视频的时长后按格式(00:00或者00:00:00)显示
1 需求 我们获取到了本地视频时长(秒为单位),然后需要按照如下格式显示 没有到小时的时长如下格式 00:00 有到小时的时长如下格式 00:00:00 2 代码实现 /*** 可以显示小时*/fun ...
- getTime()的00:00:00问题。
new Date("2014-01-20 00:00:00").getTime() 1390147200000 new Date("2014-01-20").g ...
最新文章
- linux 网络配置 阮一峰,计算机是怎样启动的? - 阮一峰的网络日志.pdf
- Centos7安装编译安装zabbix2.219及mariadb-5.5.46
- python面向对象编程的优点-Python面向对象编程 一
- matlab 基于GUI的PID研究
- 格莱泽检验matlab,计量经济学实验指导书
- 数字图像处理基础与应用学习,第二章
- 豪掷197亿美元!微软收购Siri背后的语音技术研发公司
- canny边缘检测算法_OpenCV4中调用HED边缘检测算法
- C++为什么空格无法输出_那些C/C++程序员该具备的32个编程修养习惯!
- html思维导图word版,[精选]思维导图(完美排版word).doc
- 如何批量将PNG格式转化为JPG格式
- 一分钟教你弄懂智能电表的峰、尖、平、谷
- 小米手机安装欧洲版系统(MIUI12) 详细安装教程
- MediaSession框架
- Infopath2007表单转化成word2007
- 从faker.js 开源作者Marak已删除了GIthub所有代码我们得到了什么教训
- attribute和property的区别 (转载)
- 《21天转型微服务实战营》 学习笔记
- 南信与南邮谁的计算机专业更强,南信力压南邮!关于一流本科专业!
- Java时间片轮转(简单模拟实现,适合初学者)
热门文章
- Scanner类中的nextLine()方法
- 用Matlab求解高等数学中的问题(不定积分,定积分,多元微积分,微分方程,级数问题)
- css 实现sticky 吸顶吸底效果
- r7 7735h参数 r7 7735h性能怎么样 r7 7735h相当于什么水平
- 玩转keil之hex_bin文件的生成与迁移
- 解读多重启动引导文件——BOOT.INI
- openMVS深度图计算:DenseReconstruction Estimate之EVTEstimateDepthMap之深度图初始化(patchmatch)
- 计算机组装大赛策划书新闻稿,关于装机大赛策划书
- 多元多项式除法python_python中多项式的除法
- (第四章)OpenGL超级宝典学习:必要的数学知识