java?Date獲取本月的開(kāi)始時(shí)間與結(jié)束時(shí)間
使用Calendar類(lèi)來(lái)進(jìn)行計(jì)算
獲取本月的開(kāi)始時(shí)間和結(jié)束時(shí)間,我們可以使用Calendar類(lèi)來(lái)進(jìn)行計(jì)算。
以下是示例代碼:
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Main {
public static void main(String[] args) {
// 獲取當(dāng)前日期
Date currentDate = new Date();
// 創(chuàng)建Calendar實(shí)例
Calendar calendar = Calendar.getInstance();
// 設(shè)置日期為當(dāng)前日期
calendar.setTime(currentDate);
// 將日期設(shè)置為該月的第一天
calendar.set(Calendar.DAY_OF_MONTH, 1);
// 獲取本月的開(kāi)始時(shí)間
Date startTime = calendar.getTime();
// 將日期設(shè)置為該月的最后一天
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
// 獲取本月的結(jié)束時(shí)間
Date endTime = calendar.getTime();
// 輸出結(jié)果
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("本月開(kāi)始時(shí)間:" + dateFormat.format(startTime));
System.out.println("本月結(jié)束時(shí)間:" + dateFormat.format(endTime));
}
}
getActualMaximum方法
在上面的示例代碼中,我們首先獲取當(dāng)前日期,并創(chuàng)建一個(gè)Calendar對(duì)象并將日期設(shè)置進(jìn)去。接著,將日期設(shè)置為該月的第一天,即使用set(Calendar.DAY_OF_MONTH, 1)方法將日期設(shè)置為1號(hào)。
然后,使用getActualMaximum(Calendar.DAY_OF_MONTH)方法獲取該月的最后一天,并將日期設(shè)置為該天。最后,使用getTime()方法將Calendar對(duì)象轉(zhuǎn)換為Date對(duì)象,并輸出結(jié)果。
我們使用SimpleDateFormat類(lèi)來(lái)格式化輸出結(jié)果為"yyyy-MM-dd HH:mm:ss"的字符串格式。
可以將本月的結(jié)束時(shí)間調(diào)整為在當(dāng)天的23:59:59,以獲得本月結(jié)束的精確時(shí)間。
以下是示例代碼:
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Main {
public static void main(String[] args) {
// 獲取當(dāng)前日期
Date currentDate = new Date();
// 創(chuàng)建Calendar實(shí)例
Calendar calendar = Calendar.getInstance();
// 設(shè)置日期為當(dāng)前日期
calendar.setTime(currentDate);
// 將日期設(shè)置為該月的第一天
calendar.set(Calendar.DAY_OF_MONTH, 1);
// 獲取本月的開(kāi)始時(shí)間
Date startTime = calendar.getTime();
// 將日期設(shè)置為該月的最后一天,并調(diào)整為23:59:59
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 59);
calendar.set(Calendar.SECOND, 59);
// 獲取本月的結(jié)束時(shí)間
Date endTime = calendar.getTime();
// 輸出結(jié)果
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("本月開(kāi)始時(shí)間:" + dateFormat.format(startTime));
System.out.println("本月結(jié)束時(shí)間:" + dateFormat.format(endTime));
}
}
總結(jié)
在上面的示例代碼中,我們首先獲取當(dāng)前日期,并創(chuàng)建一個(gè)Calendar對(duì)象并將日期設(shè)置進(jìn)去。接著,將日期設(shè)置為該月的第一天,即使用set(Calendar.DAY_OF_MONTH, 1)方法將日期設(shè)置為1號(hào)。
然后,使用getActualMaximum(Calendar.DAY_OF_MONTH)方法獲取該月的最后一天,并將日期設(shè)置為該天。最后,調(diào)整小時(shí)、分鐘和秒鐘,以使日期為當(dāng)天的23:59:59。
最后,使用getTime()方法將Calendar對(duì)象轉(zhuǎn)換為Date對(duì)象,并輸出結(jié)果。我們使用SimpleDateFormat類(lèi)來(lái)格式化輸出結(jié)果為"yyyy-MM-dd HH:mm:ss"的字符串格式。
以上就是java Date獲取本月的開(kāi)始時(shí)間與結(jié)束時(shí)間的詳細(xì)內(nèi)容,更多關(guān)于java Date獲取本月時(shí)間的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- java獲取指定開(kāi)始時(shí)間與結(jié)束時(shí)間之間的所有日期
- java根據(jù)開(kāi)始時(shí)間結(jié)束時(shí)間計(jì)算中間間隔日期的實(shí)例代碼
- Java計(jì)算兩個(gè)日期時(shí)間之間的天數(shù)最簡(jiǎn)方法
- Java編程實(shí)現(xiàn)計(jì)算兩個(gè)日期的月份差實(shí)例代碼
- java計(jì)算兩個(gè)日期之前的天數(shù)實(shí)例(排除節(jié)假日和周末)
- Java簡(jiǎn)單計(jì)算兩個(gè)日期月數(shù)差的方法
- java計(jì)算兩個(gè)日期中間的時(shí)間
- 利用Java中Calendar計(jì)算兩個(gè)日期之間的天數(shù)和周數(shù)
- JAVA計(jì)算兩個(gè)日期相差的實(shí)例
- Java根據(jù)開(kāi)始時(shí)間和結(jié)束時(shí)間及周幾計(jì)算日期的示例代碼
相關(guān)文章
SpringBoot之自定義啟動(dòng)異常堆棧信息打印方式
這篇文章主要介紹了SpringBoot之自定義啟動(dòng)異常堆棧信息打印方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08
Springboot-yaml配置和自動(dòng)配置原理分析
這篇文章主要介紹了Springboot-yaml配置和自動(dòng)配置原理分析,自動(dòng)配置原理是配置文件配置debug: true可以在控制臺(tái)打印自動(dòng)配置報(bào)告.可以打印所有的啟動(dòng)的自動(dòng)配置和沒(méi)有啟動(dòng)的自動(dòng)配置類(lèi),需要的朋友可以參考下2021-06-06
簡(jiǎn)單了解springboot eureka交流機(jī)制
這篇文章主要介紹了簡(jiǎn)單了解springboot eureka交流機(jī)制,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
java使用EasyExcel導(dǎo)入導(dǎo)出excel
導(dǎo)入導(dǎo)出excel數(shù)據(jù)是常見(jiàn)的需求,今天就來(lái)看一下Java基于EasyExcel實(shí)現(xiàn)這個(gè)功能,感興趣的朋友可以了解下2021-05-05
數(shù)據(jù)定位在java購(gòu)物車(chē)系統(tǒng)中的應(yīng)用
實(shí)現(xiàn)"加入購(gòu)物車(chē)"功能,數(shù)據(jù)定位至關(guān)重要,它通過(guò)用戶ID和商品ID等標(biāo)識(shí)符實(shí)現(xiàn)快速查詢和數(shù)據(jù)一致性,主鍵、外鍵和聯(lián)合索引等數(shù)據(jù)庫(kù)技術(shù),以及Redis緩存和并發(fā)控制策略如樂(lè)觀鎖或分布式鎖,共同保障了購(gòu)物車(chē)系統(tǒng)的查詢效率和數(shù)據(jù)安全,這些機(jī)制對(duì)高并發(fā)和大數(shù)據(jù)量的場(chǎng)景尤為重要2024-10-10
OpenFeign超時(shí)時(shí)間設(shè)置不生效問(wèn)題排查記錄
文章主要講述了在升級(jí)Spring Boot 3后,發(fā)現(xiàn)配置文件中的OpenFeign超時(shí)時(shí)間設(shè)置不生效的問(wèn)題,通過(guò)查看FeignClientFactoryBean類(lèi)和FeignClientProperties類(lèi)的源碼,發(fā)現(xiàn)配置讀取的方式發(fā)生了變化,從而導(dǎo)致超時(shí)時(shí)間設(shè)置不生效2024-11-11
java使用wait和notify實(shí)現(xiàn)線程通信
這篇文章主要為大家詳細(xì)介紹了java如何使用wait和notify實(shí)現(xiàn)線程之間通信,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-10-10

