时间段查询将00:00:00更换成23:59:59
创始人
2024-05-11 16:50:32
0

目录

一.问题描述

二.解决问题

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 处理时间的工具类, 如果有其他更好的方法请在评论区分享链接, 一起讨论

相关内容

热门资讯

张国荣经典台词 关于张国荣经典台词  1、哭,我为了感动谁,笑,又为了碰着谁。  ——《路过蜻蜓》  2、虽然我很喜...
新郎婚礼简短致辞 新郎婚礼简短致辞(精选10篇)  在平平淡淡的学习、工作、生活中,大家都经常接触到致辞吧,致辞是指在...
美剧经典台词截图 美剧经典台词截图  在社会发展不断提速的今天,用到台词的地方越来越多,台词是一种特殊的文学语言,必须...
女朋友撒娇的经典台词 女朋友撒娇的经典台词  1、这种被朋友的情况让我很失落,因为我喜欢他。  2、“她就是躲着我我该怎么...
会主持词开场白 会主持词开场白  篇一  尊敬的各位领导、各位来宾  各位公司同仁:  大家下午好!  非常高兴和大...
中国人寿保险公司晨会主持词 中国人寿保险公司晨会主持词  主持词由主持人于节目进行过程中串联节目的串联词。以下是小编整理的中国人...
公司中秋晚会主持词 关于公司中秋晚会主持词  主持词分为会议主持词、晚会主持词、活动主持词、婚庆主持词等。在当今不断发展...
小学生职位竞选词 小学生职位竞选词  个人觉得竞选中队长,你已经很清楚中队长需要做的事情了,那么就从每一个任务来发展一...
在结婚典礼上的精彩幽默主持词 在结婚典礼上的精彩幽默主持词各位来宾:大家好!奉新郎新娘之命,我来主持今天的婚礼。为什么新郎新娘一定...
婚礼主持人搞笑台词 婚礼主持人搞笑台词  各位来宾:  大家好!奉新郎新娘之命,我来主持今天的婚礼,婚礼主持人搞笑台词。...
幼儿园运动会主持稿 幼儿园运动会主持稿  篇一:幼儿园运动会主持词  踏着春天的脚步,踩着春风的节拍,春天已经来到我们中...
小学庆元旦活动主持词 小学庆元旦活动主持词  利用在中国拥有几千年文化的诗词能够有效提高主持词的感染力。在当今社会生活中,...
爵士舞蹈串词主持词   爵士舞即美国现代舞,是一种急促又富动感的节奏型舞蹈,是属于一种外放性的舞蹈,不像古典芭蕾舞或现代...
幼儿园元旦节目主持词   齐x:亲爱的爸爸妈妈  周x:亲爱的爷爷奶奶  王x:亲爱的老师  李x:亲爱的小朋友们  合:...
运动会运动员赞美词 运动会运动员赞美词1.赞运动员是我们的目标,是我们的信念,在清凉的初秋,在喧嚣的田径场上,。你们点燃...
黄梅戏晚会的主持词 黄梅戏晚会的主持词  戏迷欢庆四一八 黄梅又添新奇葩  ——喜迎418暨欢庆黄梅戏艺术团成立的晚会台...
学校秋季运动会开幕主持词 学校秋季运动会开幕主持词(精选6篇)  主持词要注意活动对象,针对活动对象写相应的主持词。在当今社会...
庆祝五四文艺晚会主持稿 庆祝五四文艺晚会主持稿  男:尊敬的各位领导、来宾  女:电视机前的观众朋友们  合:大家好  男:...
最新品鉴会主持词 最新品鉴会主持词  鉴会现在开始!  女:各位领导,各位嘉宾  男:女士们、先生们  合:大家下午好...