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

 更新时间:2023年01月15日 09:50:50   作者:十年(Sugar)  
本文主要介绍了java时间段查询将00:00:00更换成23:59:59,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一.问题描述

在我们作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用法

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 处理时间的工具类

到此这篇关于java时间段查询将00:00:00更换成23:59:59的文章就介绍到这了,更多相关java 00:00:00更换成23:59:59内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 利用Java手写一个简易的lombok的示例代码

    利用Java手写一个简易的lombok的示例代码

    Lombok是一款Java开发插件,使得Java开发者可以通过其定义的一系列注解来消除业务工程中冗长和繁琐的代码,尤其对于简单的Java模型对象。本文就来手写一个简易的lombok,需要的可以参考一下
    2022-10-10
  • 区分java中String+String和String+char

    区分java中String+String和String+char

    这篇文章主要向大家详细区分了java中String+String和String+char,感兴趣的小伙伴们可以参考一下
    2016-01-01
  • Java 实现FTP服务实例详解

    Java 实现FTP服务实例详解

    这篇文章主要介绍了Java 实现FTP服务实例详解的相关资料,需要的朋友可以参考下
    2017-04-04
  • 一文彻底理清SpringBoot CURD处理逻辑、顺序

    一文彻底理清SpringBoot CURD处理逻辑、顺序

    这篇文章主要给大家介绍了关于如何一文彻底理清SpringBoot CURD处理逻辑、顺序的相关资料,CURD是一个数据库技术中的缩写词,一般的项目开发的各种参数的基本功能都是CURD,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-10-10
  • MyBatis通过BATCH批量提交的方法

    MyBatis通过BATCH批量提交的方法

    今天小编就为大家分享一篇关于MyBatis通过BATCH批量提交的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • Java设计通用的返回数据格式过程讲解

    Java设计通用的返回数据格式过程讲解

    现在很多的项目server端返回client端的数据多数以JSON格式返回,同时结合其它需要,通常加一下状态码和信息之类,给前端处理带来很大的方便,这篇文章就用Java设计了通用的返回数据格式,感兴趣的同学可以参考下文
    2023-05-05
  • Springboot调整接口响应返回时长详解(解决响应超时问题)

    Springboot调整接口响应返回时长详解(解决响应超时问题)

    当后端对于数据量较大的处理或是某些耗时的操作时,需要先对请求接口的请求进行响应,下面这篇文章主要给大家介绍了关于Springboot调整接口响应返回时长(解决响应超时问题)的相关资料,需要的朋友可以参考下
    2023-01-01
  • Java带复选框的树(Java CheckBox Tree)实现和应用

    Java带复选框的树(Java CheckBox Tree)实现和应用

    这篇文章主要为大家详细介绍了Java带复选框的树实现和应用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • java yaml转properties工具类方式

    java yaml转properties工具类方式

    这篇文章主要介绍了java yaml转properties工具类方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • 获取JsonObject某一未知key的值操作

    获取JsonObject某一未知key的值操作

    这篇文章主要介绍了获取JsonObject某一未知key的值操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01

最新评论