Java獲取某一日期的前N天(使用Calendar類)
獲取當(dāng)前日期的前一天,可以使用 Java 自帶的 Calendar 類,這里提供兩種實(shí)現(xiàn)方式:
使用 Calendar 類
// 獲取 Calendar 實(shí)例 Calendar calendar = Calendar.getInstance(); // 設(shè)置為當(dāng)前日期 calendar.setTime(new Date()); // 將日期減去一天 calendar.add(Calendar.DATE, -1); // 獲取前一天日期 Date yesterday = calendar.getTime();
使用 Java 8 新特性 LocalDate
// 獲取當(dāng)前日期 LocalDate today = LocalDate.now(); // 獲取前一天日期 LocalDate yesterday = today.minusDays(1); // 轉(zhuǎn)換為 Date 類型 Date date = Date.from(yesterday.atStartOfDay(ZoneId.systemDefault()).toInstant());
第二種方法使用了 Java 8 中引入的新日期時(shí)間 API,可以更方便地進(jìn)行日期計(jì)算,不過需要注意,由于其是在 Java 8 中引入的,如果你的項(xiàng)目使用的是舊版本的 Java,則該方法不可用。
附:獲取n天后的對(duì)應(yīng)的工作日日期
/** * * 根據(jù)開始日期 ,需要的工作日天數(shù) ,計(jì)算n天后的日期(周六日不包含) * @param startDate 開始日期 * @param workDays 天數(shù) * */ public static String getAfterWorkDays(Date startDate, int workDays) { Calendar c1 = Calendar.getInstance(); c1.setTime(startDate); for (int i = 0; i < workDays; i++) { c1.set(Calendar.DATE, c1.get(Calendar.DATE) + 1); if (Calendar.SATURDAY == c1.get(Calendar.SATURDAY) || Calendar.SUNDAY == c1.get(Calendar.SUNDAY)) { workDays = workDays + 1; c1.set(Calendar.DATE, c1.get(Calendar.DATE) + 1); continue; } } SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println(df.format(c1.getTime()) + " " + getWeekOfDate(c1.getTime())); return df.format(c1.getTime()); }
總結(jié)
到此這篇關(guān)于Java獲取某一日期的前N天的文章就介紹到這了,更多相關(guān)Java獲取日期前N天內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java通過Process類Runtime.getRuntime().exec()執(zhí)行bat腳本程序
用Java編寫應(yīng)用時(shí),有時(shí)需要在程序中調(diào)用另一個(gè)現(xiàn)成的可執(zhí)行程序或系統(tǒng)命令,這篇文章主要給大家介紹了關(guān)于Java如何通過Process類Runtime.getRuntime().exec()執(zhí)行bat腳本程序的相關(guān)資料,需要的朋友可以參考下2024-01-01Spring數(shù)據(jù)庫多數(shù)據(jù)源路由配置過程圖解
這篇文章主要介紹了Spring數(shù)據(jù)庫多數(shù)據(jù)源路由配置過程圖解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06MyBatis注解開發(fā)-@Insert和@InsertProvider的使用
這篇文章主要介紹了MyBatis注解開發(fā)-@Insert和@InsertProvider的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。2022-07-07SpringMVC自定義類型轉(zhuǎn)換器實(shí)現(xiàn)解析
這篇文章主要介紹了SpringMVC自定義類型轉(zhuǎn)換器實(shí)現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12Springboot整合camunda+mysql的集成流程分析
本文介紹基于mysql數(shù)據(jù)庫,如何實(shí)現(xiàn)camunda與springboot的集成,如何實(shí)現(xiàn)基于springboot運(yùn)行camunda開源流程引擎,本文分步驟圖文相結(jié)合給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-06-06Java 使用Docker時(shí)經(jīng)常遇到的五個(gè)問題
這篇文章主要介紹了Java 使用Docker時(shí)經(jīng)常遇到的五個(gè)問題的相關(guān)資料,需要的朋友可以參考下2016-10-10Spring Boot啟動(dòng)時(shí)調(diào)用自己的非web邏輯
在spring Boot中,有些代碼是WEB功能,例如API等,但是有些邏輯是非WEB,啟動(dòng)時(shí)就要調(diào)用并持續(xù)運(yùn)行的,該如何加載自己的非WEB邏輯呢,下面通過實(shí)例代碼給大家講解,一起看看吧2017-07-07Java網(wǎng)絡(luò)編程之UDP網(wǎng)絡(luò)通信詳解
這篇文章主要為大家詳細(xì)介紹了Java網(wǎng)絡(luò)編程中的UDP網(wǎng)絡(luò)通信的原理與實(shí)現(xiàn),文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下2022-09-09