最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java獲取當(dāng)日、本周、本月、本年的實(shí)現(xiàn)方式

 更新時(shí)間:2026年02月12日 09:20:18   作者:濤哥是個(gè)大帥比  
文章主要討論了在Java中處理日期和時(shí)間時(shí)使用`LocalDateTime`和`Calendar`類的不同方法,并提到了在使用`LocalDateTime`時(shí)需要手動(dòng)進(jìn)行格式轉(zhuǎn)換

1、使用 LocalDateTime

最后的格式需要自己轉(zhuǎn)換一下

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.temporal.TemporalAdjusters;
 
public class DateUtils {
 
    public static void main(String[] args) {
        LocalDate today = LocalDate.now();
        LocalDate firstDayOfMonth = today.with(TemporalAdjusters.firstDayOfMonth());
        LocalDate lastDayOfMonth = today.with(TemporalAdjusters.lastDayOfMonth());
        LocalDate firstDayOfYear = today.withDayOfYear(1);
        LocalDate lastDayOfYear = today.withDayOfYear(today.lengthOfYear());
 
        // 當(dāng)日
        LocalDateTime startOfDay = LocalDateTime.of(today, LocalTime.MIN);
        LocalDateTime endOfDay = LocalDateTime.of(today, LocalTime.MAX);
 
        // 本周(周一到周日)
        LocalDate startOfWeek = today.with(TemporalAdjusters.previousOrSame(java.time.DayOfWeek.MONDAY));
        LocalDate endOfWeek = today.with(TemporalAdjusters.nextOrSame(java.time.DayOfWeek.SUNDAY));
        LocalDateTime startOfWeekDateTime = LocalDateTime.of(startOfWeek, LocalTime.MIN);
        LocalDateTime endOfWeekDateTime = LocalDateTime.of(endOfWeek, LocalTime.MAX);
 
        // 本月
        LocalDateTime startOfMonth = LocalDateTime.of(firstDayOfMonth, LocalTime.MIN);
        LocalDateTime endOfMonth = LocalDateTime.of(lastDayOfMonth, LocalTime.MAX);
 
        // 本年
        LocalDateTime startOfYear = LocalDateTime.of(firstDayOfYear, LocalTime.MIN);
        LocalDateTime endOfYear = LocalDateTime.of(lastDayOfYear, LocalTime.MAX);
 
        // 打印結(jié)果
        System.out.println("當(dāng)日開始時(shí)間: " + startOfDay);
        System.out.println("當(dāng)日結(jié)束時(shí)間: " + endOfDay);
        System.out.println("本周開始時(shí)間: " + startOfWeekDateTime);
        System.out.println("本周結(jié)束時(shí)間: " + endOfWeekDateTime);
        System.out.println("本月開始時(shí)間: " + startOfMonth);
        System.out.println("本月結(jié)束時(shí)間: " + endOfMonth);
        System.out.println("本年開始時(shí)間: " + startOfYear);
        System.out.println("本年結(jié)束時(shí)間: " + endOfYear);
    }
}

2、使用 Calendar

import java.sql.Timestamp;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

public class DateUtil {
    /**
     * 獲取當(dāng)天開始時(shí)間
     *
     * @return
     */
    public static Date getDayBegin() {
        Calendar cal = Calendar.getInstance();
        //0點(diǎn)
        cal.set(Calendar.HOUR_OF_DAY, 0);
        //0分
        cal.set(Calendar.MINUTE, 0);
        //0秒
        cal.set(Calendar.SECOND, 0);
        //0毫秒
        cal.set(Calendar.MILLISECOND, 0);
        return cal.getTime();
    }

    /**
     * 獲取當(dāng)天結(jié)束時(shí)間
     *
     * @return
     */
    public static Date getDayEnd() {
        Calendar cal = Calendar.getInstance();
        //23點(diǎn)
        cal.set(Calendar.HOUR_OF_DAY, 23);
        //59分
        cal.set(Calendar.MINUTE, 59);
        //59秒
        cal.set(Calendar.SECOND, 59);
        return cal.getTime();
    }

    /**
     * 獲取昨天開始時(shí)間
     *
     * @return
     */
    public static Date getBeginDayOfYesterday() {
        Calendar cal = Calendar.getInstance();
        //當(dāng)天開始時(shí)間
        cal.setTime(getDayBegin());
        //當(dāng)天月份天數(shù)減1
        cal.add(Calendar.DAY_OF_MONTH, -1);
        return cal.getTime();
    }

    /**
     * 獲取昨天結(jié)束時(shí)間
     *
     * @return
     */
    public static Date getEndDayOfYesterday() {
        Calendar cal = Calendar.getInstance();
        //當(dāng)天結(jié)束時(shí)間
        cal.setTime(getDayEnd());
        //當(dāng)天月份天數(shù)減1
        cal.add(Calendar.DAY_OF_MONTH, -1);
        return cal.getTime();
    }

    /**
     * 獲取明天開始時(shí)間
     *
     * @return
     */
    public static Date getBeginDayOfTomorrow() {
        Calendar cal = Calendar.getInstance();
        //當(dāng)天開始時(shí)間
        cal.setTime(getDayBegin());
        //當(dāng)天月份天數(shù)加1
        cal.add(Calendar.DAY_OF_MONTH, 1);
        return cal.getTime();
    }

    /**
     * 獲取明天結(jié)束時(shí)間
     *
     * @return
     */
    public static Date getEndDayOfTomorrow() {
        Calendar cal = Calendar.getInstance();
        //當(dāng)天結(jié)束時(shí)間
        cal.setTime(getDayEnd());
        //當(dāng)天月份天數(shù)加1
        cal.add(Calendar.DAY_OF_MONTH, 1);
        return cal.getTime();
    }

    /**
     * 獲取某個(gè)日期的開始時(shí)間
     *
     * @param d
     * @return
     */
    public static Timestamp getDayStartTime(Date d) {
        Calendar calendar = Calendar.getInstance();
        if (null != d) {
            calendar.setTime(d);
        }
        calendar.set(calendar.get(Calendar.YEAR),
                calendar.get(Calendar.MONTH),
                calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
        calendar.set(Calendar.MILLISECOND, 0);
        return new Timestamp(calendar.getTimeInMillis());
    }

    /**
     * 獲取某個(gè)日期的結(jié)束時(shí)間
     *
     * @param d
     * @return
     */
    public static Timestamp getDayEndTime(Date d) {
        Calendar calendar = Calendar.getInstance();
        if (null != d) {
            calendar.setTime(d);
        }
        calendar.set(calendar.get(Calendar.YEAR),
                calendar.get(Calendar.MONTH),
                calendar.get(Calendar.DAY_OF_MONTH), 23, 59, 59);
        calendar.set(Calendar.MILLISECOND, 999);
        return new Timestamp(calendar.getTimeInMillis());
    }

    /**
     * 獲取本周的開始時(shí)間
     *
     * @return
     */
    public static Date getBeginDayOfWeek() {
        Date date = new Date();
        if (date == null) {
            return null;
        }
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
        if (dayOfWeek == 1) {
            dayOfWeek += 7;
        }
        cal.add(Calendar.DATE, 2 - dayOfWeek);
        return getDayStartTime(cal.getTime());
    }

    /**
     * 獲取本周的結(jié)束時(shí)間
     *
     * @return
     */
    public static Date getEndDayOfWeek() {
        Calendar cal = Calendar.getInstance();
        cal.setTime(getBeginDayOfWeek());
        cal.add(Calendar.DAY_OF_WEEK, 6);
        Date weekEndSta = cal.getTime();
        return getDayEndTime(weekEndSta);
    }

    /**
     * 獲取上周開始時(shí)間
     */
    @SuppressWarnings("unused")
    public static Date getBeginDayOfLastWeek() {
        Date date = new Date();
        if (date == null) {
            return null;
        }
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        int dayofweek = cal.get(Calendar.DAY_OF_WEEK);
        if (dayofweek == 1) {
            dayofweek += 7;
        }
        cal.add(Calendar.DATE, 2 - dayofweek - 7);
        return getDayStartTime(cal.getTime());
    }

    /**
     * 獲取上周的結(jié)束時(shí)間
     *
     * @return
     */
    public static Date getEndDayOfLastWeek() {
        Calendar cal = Calendar.getInstance();
        cal.setTime(getBeginDayOfLastWeek());
        cal.add(Calendar.DAY_OF_WEEK, 6);
        Date weekEndSta = cal.getTime();
        return getDayEndTime(weekEndSta);
    }

    /**
     * 獲取今年是哪一年
     *
     * @return
     */
    public static Integer getNowYear() {
        Date date = new Date();
        GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();
        gc.setTime(date);
        return Integer.valueOf(gc.get(1));
    }

    /**
     * 獲取本月是哪一月
     *
     * @return
     */
    public static int getNowMonth() {
        Date date = new Date();
        GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();
        gc.setTime(date);
        return gc.get(2) + 1;
    }

    /**
     * 獲取本月的開始時(shí)間
     *
     * @return
     */
    public static Date getBeginDayOfMonth() {
        Calendar calendar = Calendar.getInstance();
        calendar.set(getNowYear(), getNowMonth() - 1, 1);
        return getDayStartTime(calendar.getTime());
    }

    /**
     * 獲取本月的結(jié)束時(shí)間
     *
     * @return
     */
    public static Date getEndDayOfMonth() {
        Calendar calendar = Calendar.getInstance();
        calendar.set(getNowYear(), getNowMonth() - 1, 1);
        int day = calendar.getActualMaximum(5);
        calendar.set(getNowYear(), getNowMonth() - 1, day);
        return getDayEndTime(calendar.getTime());
    }

    /**
     * 獲取上月的開始時(shí)間
     *
     * @return
     */
    public static Date getBeginDayOfLastMonth() {
        Calendar calendar = Calendar.getInstance();
        calendar.set(getNowYear(), getNowMonth() - 2, 1);
        return getDayStartTime(calendar.getTime());
    }

    /**
     * 獲取上月的結(jié)束時(shí)間
     *
     * @return
     */
    public static Date getEndDayOfLastMonth() {
        Calendar calendar = Calendar.getInstance();
        calendar.set(getNowYear(), getNowMonth() - 2, 1);
        int day = calendar.getActualMaximum(5);
        calendar.set(getNowYear(), getNowMonth() - 2, day);
        return getDayEndTime(calendar.getTime());
    }

    /**
     * 獲取本年的開始時(shí)間
     *
     * @return
     */
    public static Date getBeginDayOfYear() {
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.YEAR, getNowYear());
        cal.set(Calendar.MONTH, Calendar.JANUARY);
        cal.set(Calendar.DATE, 1);
        return getDayStartTime(cal.getTime());
    }

    /**
     * 獲取本年的結(jié)束時(shí)間
     *
     * @return
     */
    public static Date getEndDayOfYear() {
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.YEAR, getNowYear());
        cal.set(Calendar.MONTH, Calendar.DECEMBER);
        cal.set(Calendar.DATE, 31);
        return getDayEndTime(cal.getTime());
    }
}

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java中?!=null?的判斷

    Java中?!=null?的判斷

    空指針異常是出現(xiàn)頻率比較高的bug,在出現(xiàn)空指針時(shí),很多小伙伴都是習(xí)慣性地加一個(gè)?!=null?的判斷,本文就來介紹一下如何使用,給感興趣的可以了解下
    2025-02-02
  • Spring編程式和聲明式事務(wù)實(shí)例講解小結(jié)

    Spring編程式和聲明式事務(wù)實(shí)例講解小結(jié)

    這篇文章主要介紹了Spring編程式和聲明式事務(wù)實(shí)例講解小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Java后端向前端推送消息完整代碼實(shí)例

    Java后端向前端推送消息完整代碼實(shí)例

    WebSocket是一種全雙工通信協(xié)議,允許后端主動(dòng)向前端推送消息,下面這篇文章主要介紹了Java后端向前端推送消息的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2026-02-02
  • Java實(shí)現(xiàn)一個(gè)簡(jiǎn)單的定時(shí)器代碼解析

    Java實(shí)現(xiàn)一個(gè)簡(jiǎn)單的定時(shí)器代碼解析

    這篇文章主要介紹了Java實(shí)現(xiàn)一個(gè)簡(jiǎn)單的定時(shí)器代碼解析,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • 移動(dòng)開發(fā)Spring Boot外置tomcat教程及解決方法

    移動(dòng)開發(fā)Spring Boot外置tomcat教程及解決方法

    這篇文章主要介紹了移動(dòng)開發(fā)SpringBoot外置tomcat教程,需要的朋友可以參考下
    2017-11-11
  • SpringCloud中數(shù)據(jù)認(rèn)證加密的方法總結(jié)

    SpringCloud中數(shù)據(jù)認(rèn)證加密的方法總結(jié)

    在當(dāng)今分布式系統(tǒng)的日益復(fù)雜和信息傳遞的廣泛網(wǎng)絡(luò)化環(huán)境中,數(shù)據(jù)的加密和認(rèn)證作為保障信息傳遞安全的關(guān)鍵手段,Spring?Cloud,作為一套構(gòu)建微服務(wù)架構(gòu)的強(qiáng)大框架,提供了多種靈活而強(qiáng)大的數(shù)據(jù)加密和認(rèn)證方式,本文給大家總結(jié)了SpringCloud數(shù)據(jù)認(rèn)證加密的方法
    2024-03-03
  • 實(shí)例講解Java編程中數(shù)組反射的使用方法

    實(shí)例講解Java編程中數(shù)組反射的使用方法

    這篇文章主要介紹了Java編程中數(shù)組反射的使用方法,通過編寫數(shù)組反射工具類可以重用許多基礎(chǔ)代碼,減少對(duì)類型的判斷過程,需要的朋友可以參考下
    2016-04-04
  • Java動(dòng)態(tài)數(shù)組添加數(shù)據(jù)的方法與應(yīng)用示例

    Java動(dòng)態(tài)數(shù)組添加數(shù)據(jù)的方法與應(yīng)用示例

    這篇文章主要介紹了Java動(dòng)態(tài)數(shù)組添加數(shù)據(jù)的方法,結(jié)合實(shí)例形式詳細(xì)分析了Java動(dòng)態(tài)數(shù)組的創(chuàng)建、添加、查找、打印等相關(guān)操作技巧,需要的朋友可以參考下
    2019-11-11
  • Spring注解之@FunctionalInterface詳解(函數(shù)式接口)

    Spring注解之@FunctionalInterface詳解(函數(shù)式接口)

    @FunctionalInterface是Java8注解,標(biāo)識(shí)僅含一個(gè)抽象方法的函數(shù)式接口,支持Lambda,編譯檢查確保符合定義,提升可讀性,非強(qiáng)制,繼承方法需注意計(jì)數(shù),Object方法不計(jì)入
    2025-09-09
  • 簡(jiǎn)單驗(yàn)證碼生成Java版

    簡(jiǎn)單驗(yàn)證碼生成Java版

    這篇文章主要為大家詳細(xì)介紹了簡(jiǎn)單驗(yàn)證碼生成Java版,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11

最新評(píng)論

芦溪县| 彰化市| 祁门县| 从化市| 乌兰察布市| 广汉市| 上思县| 如东县| 天全县| 镇沅| 泸西县| 安乡县| 东城区| 青海省| 开封县| 米林县| 富蕴县| 香格里拉县| 都昌县| 应城市| 久治县| 兴安盟| 手游| 海原县| 杭锦后旗| 富裕县| 宿州市| 桂阳县| 玉林市| 伊川县| 怀来县| 贵阳市| 南澳县| 木兰县| 白朗县| 华池县| 拉萨市| 张家界市| 邵武市| 图片| 承德县|