时间段查询将00:00:00更换成23:59:59

news2025/1/20 5:57:17

目录

一.问题描述

二.解决问题

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/161423.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue3和Vue2的区别

vue经历从2.0到3.0更新之后,简⽽⾔之就是变得更轻,更快,使⽤起来更加⽅便,每⼀次的版本迭代都是对上⼀个版本的升级优化,不管 是对于我们开发者还是对于⽤户体验都是不断地在越来越⽅便, 选项式Api与组合式…

【计数服务】计数服务落地

一、计数服务 计数服务是针对某个动作在不同维度行为次数的统计或者累加,计数服务需要满足计数的准确性,并且在满足准确性的同时,要注意其性能。 二、计数服务的实现 计数服务分为 非精准计数和精准计数 非精准计数:点赞量、浏…

【Blender UV映射03】如何处理复杂的结构 如何整理UV

写在前面 前面的学习记录: 【Blende UV映射01】创建UV 使用UV贴图处理纹理 【Blender UV映射02】智能UV映射 创建和应用法线纹理 依旧是跟着Blender 2.8 UV Mapping教程,本文是教程的P13-P19的过程记录。 1 善用L分析模型结构 拿到一个相对复杂的模…

压轴级教程!Java人必学的微服务项目上线!

给你说个冷知识下周末就要过年了……年关将至有人欢喜有人愁欢喜的是在外奔波一年终于可以和家人相聚愁的则是回家无非是:1.圆了亲戚的媒婆梦2.让亲戚过过嘴瘾3.成为晚辈的反面教材面对七大姑八大姨的灵魂拷问——有对象了吗?——现在做啥工作&#xff1…

2022年美赛B题O奖获奖分享

1.美赛获奖分享: ** 可以去我的网站逛逛点击传输 ** 首先是选题,今年MCM选择A,B题目的队伍相对较少,超60%的队伍选择C题,对题目的选择需要慎重,较难的题目参赛的队伍会少一些,获得O奖的概率理论上较高…

day14|110.平衡二叉树、257. 二叉树的所有路径、404.左叶子之和

110.平衡二叉树 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 示例 1: 输入:root [3,9,20,null,null,15,7] 输…

【正点原子FPGA连载】 第十七章 呼吸灯实验 摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0

1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id692450874670 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html 第十七章 呼吸灯…

队列的讲解和实现(图解+代码/C语言+循环队列OJ)

今天为大家分享的是队列的实现,本文主要介绍单向链表来模拟实现队列,最后给出力扣上一道循队列的OJ实现。 目录 一、图解队列的结构 二、模拟栈的分步实现 (1)队列的初始化 (2)队尾入队 (3&…

【自学Python】Python比较运算符is和==区别

Python比较运算符is和区别 Python比较运算符is和区别教程 在 Python 中,比较运算符 is 和 is not 用于比较两个对象是否是同一个对象, 和 ! 用于比较两个 变量 的数据是否相等。 案例 比较数值型 数值型,使用 is 和 效果相同 print(&q…

Word控件Spire.Doc 【Table】教程(5):创建表格并在 Doc 文档中设置其边框

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具,专注于创建、编辑、转…

ROS2机器人编程简述新书推荐-A Concise Introduction to Robot Programming with ROS2

参考链接:https://github.com/fmrico/book_ros2封面:简介:ROS2机器人编程简明教程使用ROS2进行机器人编程的简明介绍为读者提供了通过编程实现机器人所需的概念和工具。它将使读者具备使用ROS2(ROS的新版本)进行项目所…

RT-Thread系列--内存堆MEMHEAP源码分析

一、目的在上一篇《RT-Thread系列--内存池MEMPOOL源码分析》我们介绍了RT-Thread的内存池MEMPOOL实现细节,包括内存池结构和内存块管理。本篇我们来分析一下RT-Thread的内存堆MEMHEAP的实现原理。内存堆MEMHEAP的特点:按需分配,需要多少内存就…

小伟婚后首次看望丈母娘,大衣哥准备了一大三轮车礼品,太豪横了

伴随着春节的临近,大衣哥的儿子小伟, 又一次迎来自己的高光时刻,他和未婚妻一起携手,步入了神圣的婚姻殿堂,大衣哥也长出一口气。儿子小伟再婚,大衣哥完成了一小半任务,接下来还要生孩子&#x…

【Python基础篇】Python中的七种数据类型

文章目录前导一、数字类型(Number)二、布尔类型(Boolean)三、字符串类型(String)3.1 字符串索引3.2 字符串截取、拼接和复用四、列表类型(List)4.1 in和not in4.2 len()4.3 添加/删除…

Three.js 打造酷炫的三角形

在前一章中,我们通过 BufferGeometry 创建了一个正方形,本节我们利用 BufferGeometry 打造一簇酷炫的三角形,最终的效果如下图所示: 从效果图中可以发现,每一个三角形的位置、大小、颜色都是随机的。 // 共有50个三角…

医疗影像工具LEADTOOLS 入门教程: 检测和提取机读旅行证件 - 控制台 C#

LEADTOOLS 是一个综合工具包的集合,用于将识别、文档、医疗、成像和多媒体技术整合到桌面、服务器、平板电脑、网络和移动解决方案中,是一项企业级文档自动化解决方案,有捕捉,OCR,OMR,表单识别和处理&#…

专注分布式架构 莱商银行的数字化转型实践

本文刊登于《金融电子化》杂志 2022 年 12 月下,作者魏汝浩为莱商银行首席信息官。2021 年 12 月 29 日,中国人民银行印发《金融科技发展规划(2022—2025 年)》(银发〔2021〕335 号),提出新时期…

分享166个ASP源码,总有一款适合您

166个ASP源码下载链接:https://pan.baidu.com/s/19W7FmY9nADL1Rge8e5uqiQ?pwdskhh 提取码:skhh import os import shutil import time from time import sleepimport requests from bs4 import BeautifulSoup from docx import Document from docx.sh…

Shader从入门到放弃(四) —— 绘制闪耀星际

前言 经过3个章节的学习,相信大家对shader编程也逐渐的有了一些感觉,所以这次我们玩个“大”的!。 今天的学习内容是绘制“闪耀星际”,正如歌中唱的那样: 星际闪耀光影,落入你的眼睛,如迷人的…

Dubbo泛化调用

Dubbo泛化调用 1. 场景 场景一:我们要搭建一个统一的测试平台,可以让各个业务方在测试平台中通过输入接口、分组名、方法名以及参数值,在线测试自己发布的 RPC 服务。这时我们就有一个问题要解决,我们搭建统一的测试平台实际上是…