java用LocalDateTime類獲取當(dāng)天時間、前一天時間及本周/本月的開始和結(jié)束時間
1.直接上代碼:
// 獲取當(dāng)天日期
LocalDate now = LocalDate.now();
// 當(dāng)天開始時間
LocalDateTime todayStart = now.atStartOfDay();
// 當(dāng)天結(jié)束時間
LocalDateTime todayEnd = LocalDateTime.of(now, LocalTime.MAX);
// 周一
LocalDate monday = now.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));
// 周日
LocalDate sunday = now.with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY));
// 本周開始時間
LocalDateTime weekStart = monday.atStartOfDay();
// 本周結(jié)束時間
LocalDateTime weekEnd = LocalDateTime.of(sunday, LocalTime.MAX);
// 本月1號
LocalDate firstDayOfMonth = now.with(TemporalAdjusters.firstDayOfMonth());
// 本月最后一天
LocalDate lastDayOfMonth = now.with(TemporalAdjusters.lastDayOfMonth());
// 本月1號的開始時間
LocalDateTime firstDayOfMonthStart = firstDayOfMonth.atStartOfDay();
// 本月最后一天的最后時間
LocalDateTime firstDayOfMonthEnd = LocalDateTime.of(lastDayOfMonth, LocalTime.MAX);
// 今年第一天
LocalDate beginTime = LocalDate.now().with(TemporalAdjusters.firstDayOfYear());
// 今年最后一天
LocalDate endTiime = LocalDate.now().with(TemporalAdjusters.lastDayOfYear());
//獲取前一天日期
LocalDate yesterday2 = LocalDate.now().minusDays(1);
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
System.out.println("當(dāng)天開始時間 = " + todayStart.format(pattern) + " 時間戳 :" + todayStart.toInstant(ZoneOffset.of("+8")).toEpochMilli());
System.out.println("當(dāng)天結(jié)束時間 = " + todayEnd.format(pattern) + " 時間戳 :" + todayEnd.toInstant(ZoneOffset.of("+8")).toEpochMilli());
System.out.println("本周開始時間 = " + weekStart.format(pattern) + " 時間戳 :" + weekStart.toInstant(ZoneOffset.of("+8")).toEpochMilli());
System.out.println("本周結(jié)束時間 = " + weekEnd.format(pattern) + " 時間戳 :" + weekEnd.toInstant(ZoneOffset.of("+8")).toEpochMilli());
System.out.println("本月開始時間 = " + firstDayOfMonthStart.format(pattern) + " 時間戳 :" + firstDayOfMonthStart.toInstant(ZoneOffset.of("+8")).toEpochMilli());
System.out.println("本月結(jié)束時間 = " + firstDayOfMonthEnd.format(pattern) + " 時間戳 :" + firstDayOfMonthEnd.toInstant(ZoneOffset.of("+8")).toEpochMilli());2.當(dāng)前時間減
LocalDate.now().minusYears(x); //當(dāng)前日期減去指定的年份 ???????LocalDate.now().minusMonths(x); //當(dāng)前日期減去指定的月份 LocalDate.now().minusDays(x); //當(dāng)前日期減去指定的天數(shù) LocalDate.now().minusWeeks(x); //當(dāng)前日期減去指定的周數(shù)
3.時間格式化
DateTimeFormatter formatter3 = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");
//格式化
String str4 = formatter3.format(LocalDateTime.now());
System.out.println(str4);//2021-09-22 06:33:08
//解析
TemporalAccessor parse1 = formatter3.parse(str4);
System.out.println(parse1);//{NanoOfSecond=0, MilliOfSecond=0, MinuteOfHour=34, HourOfAmPm=6, SecondOfMinute=6, MicroOfSecond=0},ISO resolved to 2021-09-22
//解析
String dateString = "2023-07-13 15:30:00";
LocalDateTime dateTime = LocalDateTime.parse(dateString, formatter3);注意:
DateTimeFormatter formatter3 = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");這個 hh:mm:ss 跟HH:mm:ss的區(qū)別,如果采用24小時的話,要用HH,如果是:2023-07-27 23:59:59 這種,確用了 hh:mm:ss 這種格式,會報錯
4.兩個LocalDateTime.now()之間相差的天數(shù)
LocalDateTime start = LocalDateTime.of(2023, 6, 1, 0, 0, 0); LocalDateTime end = LocalDateTime.of(2023, 6, 28, 0, 0, 0); Duration duration = Duration.between(start, end); long days = duration.toDays(); System.out.println(days); // 輸出:27
總結(jié)
到此這篇關(guān)于java用LocalDateTime類獲取當(dāng)天時間、前一天時間及本周/本月的開始和結(jié)束時間的文章就介紹到這了,更多相關(guān)java LocalDateTime類獲取時間內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java配置dbcp連接池(數(shù)據(jù)庫連接池)示例分享
java配置dbcp連接池示例分享,大家參考使用吧2013-12-12
Java數(shù)據(jù)結(jié)構(gòu)順序表用法詳解
順序表是計算機(jī)內(nèi)存中以數(shù)組的形式保存的線性表,線性表的順序存儲是指用一組地址連續(xù)的存儲單元依次存儲線性表中的各個元素、使得線性表中在邏輯結(jié)構(gòu)上相鄰的數(shù)據(jù)元素存儲在相鄰的物理存儲單元中,即通過數(shù)據(jù)元素物理存儲的相鄰關(guān)系來反映數(shù)據(jù)元素之間邏輯上的相鄰關(guān)系2021-10-10
Java并發(fā)編程示例(六):等待線程執(zhí)行終止
這篇文章主要介紹了Java并發(fā)編程示例(六):等待線程執(zhí)行終止,在本節(jié),示例程序演示等待初始化方法完成后,再去執(zhí)行其他任務(wù),需要的朋友可以參考下2014-12-12
簡單了解spring cloud 網(wǎng)關(guān)服務(wù)
這篇文章主要介紹了簡單了解spring cloud 網(wǎng)關(guān)服務(wù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-10-10
Java任務(wù)調(diào)度的常見實現(xiàn)方法與比較詳解
這篇文章主要介紹了Java任務(wù)調(diào)度的常見實現(xiàn)方法與比較,結(jié)合實例形式分析了Java任務(wù)調(diào)度的四種常見實現(xiàn)方法,使用區(qū)別及相關(guān)注意事項,需要的朋友可以參考下2017-08-08

