欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 在這種時間段查詢是前端用時間組件寫出來的,但是列表的上報時間是從數(shù)據(jù)庫中讀出來的, 但是數(shù)據(jù)庫中的上報時間是

 如果用sql查詢的話 2023-01-13 10:49:23 這個時間是查不到的

但是我們頁面中的上報時間是date類型的

如圖:

所以就是時間組件的最火傳過來的時間都能看到

如圖:

二.解決問題

2.1.思路一(時間戳賦值)

在出現(xiàn)這個問題后, 我曾經(jīng)想過, 將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區(qū)分,后者用在數(shù)據(jù)庫中沒有格式化的Date),它打印出的日期可讀性差,可以使用SimpleDateFormat對時間進行格式化,但SimpleDateFormat又是線程不安全,包括format和parse方法,而在時間的計算方面不是很方便。
2. java.util.Canlendar 可以用于獲取并設置年、月、日、時、分、秒,它和Date比,主要多了一個可以做簡單的日期和時間運算的功能,Canlendar 變量是全局變量,會導致臟變量情況產(chǎn)生,并且這個共享變量沒有做線程安全控制,也就是多線程的情況下是線程不安全的。
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");
        //設置參數(shù)
        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內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論