网站域名注册流程,西宁做网站的公司,制作图片软件下载,建设工程交易平台1. 简介
Java8提供了全新的日期处理包#xff08;java.time.*#xff09;#xff0c;根据Java8日期新特性封装日期时间工具类LocalDateTimeUtils。
2. 工具类方法目录
说明方法名称当前时间LocalDateTimeUtils.now()Date 转 LocalDateTimeLocalDateTimeUtils.convert(new…1. 简介
Java8提供了全新的日期处理包java.time.*根据Java8日期新特性封装日期时间工具类LocalDateTimeUtils。
2. 工具类方法目录
说明方法名称当前时间LocalDateTimeUtils.now()Date 转 LocalDateTimeLocalDateTimeUtils.convert(new Date()));LocalDateTime 转 DateLocalDateTimeUtils.convert(LocalDateTime.now()));今天开始时间LocalDateTimeUtils.todayStartTime()今天结束时间LocalDateTimeUtils.todayEndTime()昨天开始时间LocalDateTimeUtils.yesterdayStartTime()昨天结束时间LocalDateTimeUtils.yesterdayEndTime()最近7天开始时间LocalDateTimeUtils.last7DaysStartTime()最近7天结束时间LocalDateTimeUtils.last7DaysEndTime()最近30天开始时间LocalDateTimeUtils.last30DaysStartTime()最近30天天结束时间LocalDateTimeUtils.last30DaysEndTime()最近一年开始时间LocalDateTimeUtils.last1YearStartTime()最近一年结束时间LocalDateTimeUtils.last1YearEndTime()本周开始时间LocalDateTimeUtils.weekStartTime()本周结束时间LocalDateTimeUtils.weekEndTime()本月开始时间LocalDateTimeUtils.monthStartTime()本月结束时间LocalDateTimeUtils.monthEndTime()本季度开始时间LocalDateTimeUtils.quarterStartTime()本季度结束时间LocalDateTimeUtils.quarterEndTime()本半年开始时间LocalDateTimeUtils.halfYearStartTime()本半年结束时间LocalDateTimeUtils.halfYearEndTime()本年开始时间LocalDateTimeUtils.yearStartTime()本年结束时间LocalDateTimeUtils.yearEndTime()上周开始时间LocalDateTimeUtils.lastWeekStartTime()上周结束时间LocalDateTimeUtils.lastWeekEndTime()上月开始时间LocalDateTimeUtils.lastMonthStartTime()上月结束时间LocalDateTimeUtils.lastMonthEndTime()上季度开始时间LocalDateTimeUtils.lastQuarterStartTime()上季度结束时间LocalDateTimeUtils.lastQuarterEndTime()上半年开始时间LocalDateTimeUtils.lastHalfYearStartTime()上半年结束时间LocalDateTimeUtils.lastHalfYearEndTime()上一年开始时间LocalDateTimeUtils.lastYearStartTime()上一年结束时间LocalDateTimeUtils.lastYearEndTime()下周开始时间LocalDateTimeUtils.nextWeekStartTime()下周结束时间LocalDateTimeUtils.nextWeekEndTime()下月开始时间LocalDateTimeUtils.nextMonthStartTime()下月结束时间LocalDateTimeUtils.nextMonthEndTime()下季度开始时间LocalDateTimeUtils.nextQuarterStartTime()下季度结束时间LocalDateTimeUtils.nextQuarterEndTime()下半年开始时间LocalDateTimeUtils.nextHalfYearStartTime()下半年结束时间LocalDateTimeUtils.nextHalfYearEndTime()下一年开始时间LocalDateTimeUtils.nextYearStartTime()下一年结束时间LocalDateTimeUtils.nextYearEndTime()
4. 示例代码#
Copyimport java.time.*;
import java.time.temporal.ChronoUnit;
import java.time.temporal.TemporalAdjusters;
import java.util.Date;/*** LocalDateTime工具类** author CL*/
public class LocalDateTimeUtils {/*** 当前时间** return*/public static LocalDateTime now() {return LocalDateTime.now();}/*** Date 转 LocalDateTime** return*/public static LocalDateTime convert(Date date) {return LocalDateTime.ofInstant(Instant.ofEpochMilli(date.getTime()), ZoneId.systemDefault());}/*** LocalDateTime 转 Date** return*/public static Date convert(LocalDateTime localDateTime) {return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());}/*** 今天开始时间** return*/public static LocalDateTime todayStartTime() {return LocalDateTime.of(LocalDate.now(), LocalTime.MIN);}/*** 今天结束时间** return*/public static LocalDateTime todayEndTime() {return LocalDateTime.of(LocalDate.now(), LocalTime.MAX);}/*** 昨天开始时间** return*/public static LocalDateTime yesterdayStartTime() {return LocalDateTime.of(LocalDate.now().minus(1L, ChronoUnit.DAYS), LocalTime.MIN);}/*** 昨天结束时间** return*/public static LocalDateTime yesterdayEndTime() {return LocalDateTime.of(LocalDate.now().minus(1L, ChronoUnit.DAYS), LocalTime.MAX);}/*** 最近7天开始时间** return*/public static LocalDateTime last7DaysStartTime() {return LocalDateTime.of(LocalDate.now().minus(6L, ChronoUnit.DAYS), LocalTime.MIN);}/*** 最近7天结束时间** return*/public static LocalDateTime last7DaysEndTime() {return LocalDateTime.of(LocalDate.now(), LocalTime.MAX);}/*** 最近30天开始时间** return*/public static LocalDateTime last30DaysStartTime() {return LocalDateTime.of(LocalDate.now().minus(29L, ChronoUnit.DAYS), LocalTime.MIN);}/*** 最近30天结束时间** return*/public static LocalDateTime last30DaysEndTime() {return LocalDateTime.of(LocalDate.now(), LocalTime.MAX);}/*** 最近一年开始时间** return*/public static LocalDateTime last1YearStartTime() {return LocalDateTime.of(LocalDate.now().minus(1L, ChronoUnit.YEARS).plus(1L, ChronoUnit.DAYS), LocalTime.MIN);}/*** 最近一年结束时间** return*/public static LocalDateTime last1YearEndTime() {return LocalDateTime.of(LocalDate.now(), LocalTime.MAX);}/*** 本周开始时间** return*/public static LocalDateTime weekStartTime() {LocalDate now LocalDate.now();return LocalDateTime.of(now.minusDays(now.getDayOfWeek().getValue() - 1), LocalTime.MIN);}/*** 本周结束时间** return*/public static LocalDateTime weekEndTime() {LocalDate now LocalDate.now();return LocalDateTime.of(now.plusDays(7 - now.getDayOfWeek().getValue()), LocalTime.MAX);}/*** 本月开始时间** return*/public static LocalDateTime monthStartTime() {return LocalDateTime.of(LocalDate.now().with(TemporalAdjusters.firstDayOfMonth()), LocalTime.MIN);}/*** 本月结束时间** return*/public static LocalDateTime monthEndTime() {return LocalDateTime.of(LocalDate.now().with(TemporalAdjusters.lastDayOfMonth()), LocalTime.MAX);}/*** 本季度开始时间** return*/public static LocalDateTime quarterStartTime() {LocalDate now LocalDate.now();Month month Month.of(now.getMonth().firstMonthOfQuarter().getValue());return LocalDateTime.of(LocalDate.of(now.getYear(), month, 1), LocalTime.MIN);}/*** 本季度结束时间** return*/public static LocalDateTime quarterEndTime() {LocalDate now LocalDate.now();Month month Month.of(now.getMonth().firstMonthOfQuarter().getValue()).plus(2L);return LocalDateTime.of(LocalDate.of(now.getYear(), month, month.length(now.isLeapYear())), LocalTime.MAX);}/*** 本半年开始时间** return*/public static LocalDateTime halfYearStartTime() {LocalDate now LocalDate.now();Month month (now.getMonthValue() 6) ? Month.JULY : Month.JANUARY;return LocalDateTime.of(LocalDate.of(now.getYear(), month, 1), LocalTime.MIN);}/*** 本半年结束时间** return*/public static LocalDateTime halfYearEndTime() {LocalDate now LocalDate.now();Month month (now.getMonthValue() 6) ? Month.DECEMBER : Month.JUNE;return LocalDateTime.of(LocalDate.of(now.getYear(), month, month.length(now.isLeapYear())), LocalTime.MAX);}/*** 本年开始时间** return*/public static LocalDateTime yearStartTime() {return LocalDateTime.of(LocalDate.now().with(TemporalAdjusters.firstDayOfYear()), LocalTime.MIN);}/*** 本年结束时间** return*/public static LocalDateTime yearEndTime() {return LocalDateTime.of(LocalDate.now().with(TemporalAdjusters.lastDayOfYear()), LocalTime.MAX);}/*** 上周开始时间** return*/public static LocalDateTime lastWeekStartTime() {LocalDate lastWeek LocalDate.now().minus(1L, ChronoUnit.WEEKS);return LocalDateTime.of(lastWeek.minusDays(lastWeek.getDayOfWeek().getValue() - 1), LocalTime.MIN);}/*** 上周结束时间** return*/public static LocalDateTime lastWeekEndTime() {LocalDate lastWeek LocalDate.now().minus(1L, ChronoUnit.WEEKS);return LocalDateTime.of(lastWeek.plusDays(7 - lastWeek.getDayOfWeek().getValue()), LocalTime.MAX);}/*** 上月开始时间** return*/public static LocalDateTime lastMonthStartTime() {return LocalDateTime.of(LocalDate.now().minus(1L, ChronoUnit.MONTHS).with(TemporalAdjusters.firstDayOfMonth()), LocalTime.MIN);}/*** 上月结束时间** return*/public static LocalDateTime lastMonthEndTime() {return LocalDateTime.of(LocalDate.now().minus(1L, ChronoUnit.MONTHS).with(TemporalAdjusters.lastDayOfMonth()), LocalTime.MAX);}/*** 上季度开始时间** return*/public static LocalDateTime lastQuarterStartTime() {LocalDate now LocalDate.now();Month firstMonthOfQuarter Month.of(now.getMonth().firstMonthOfQuarter().getValue());Month firstMonthOfLastQuarter firstMonthOfQuarter.minus(3L);int yearOfLastQuarter firstMonthOfQuarter.getValue() 4 ? now.getYear() - 1 : now.getYear();return LocalDateTime.of(LocalDate.of(yearOfLastQuarter, firstMonthOfLastQuarter, 1), LocalTime.MIN);}/*** 上季度结束时间** return*/public static LocalDateTime lastQuarterEndTime() {LocalDate now LocalDate.now();Month firstMonthOfQuarter Month.of(now.getMonth().firstMonthOfQuarter().getValue());Month firstMonthOfLastQuarter firstMonthOfQuarter.minus(1L);int yearOfLastQuarter firstMonthOfQuarter.getValue() 4 ? now.getYear() - 1 : now.getYear();return LocalDateTime.of(LocalDate.of(yearOfLastQuarter, firstMonthOfLastQuarter, firstMonthOfLastQuarter.maxLength()), LocalTime.MAX);}/*** 上半年开始时间** return*/public static LocalDateTime lastHalfYearStartTime() {LocalDate now LocalDate.now();int lastHalfYear (now.getMonthValue() 6) ? now.getYear() : now.getYear() - 1;Month firstMonthOfLastHalfYear (now.getMonthValue() 6) ? Month.JANUARY : Month.JULY;return LocalDateTime.of(LocalDate.of(lastHalfYear, firstMonthOfLastHalfYear, 1), LocalTime.MIN);}/*** 上半年结束时间** return*/public static LocalDateTime lastHalfYearEndTime() {LocalDate now LocalDate.now();int lastHalfYear (now.getMonthValue() 6) ? now.getYear() : now.getYear() - 1;Month lastMonthOfLastHalfYear (now.getMonthValue() 6) ? Month.JUNE : Month.DECEMBER;return LocalDateTime.of(LocalDate.of(lastHalfYear, lastMonthOfLastHalfYear, lastMonthOfLastHalfYear.maxLength()), LocalTime.MAX);}/*** 上一年开始时间** return*/public static LocalDateTime lastYearStartTime() {return LocalDateTime.of(LocalDate.now().minus(1L, ChronoUnit.YEARS).with(TemporalAdjusters.firstDayOfYear()), LocalTime.MIN);}/*** 上一年结束时间** return*/public static LocalDateTime lastYearEndTime() {return LocalDateTime.of(LocalDate.now().minus(1L, ChronoUnit.YEARS).with(TemporalAdjusters.lastDayOfYear()), LocalTime.MAX);}/*** 下周开始时间** return*/public static LocalDateTime nextWeekStartTime() {LocalDate nextWeek LocalDate.now().plus(1L, ChronoUnit.WEEKS);return LocalDateTime.of(nextWeek.minusDays(nextWeek.getDayOfWeek().getValue() - 1), LocalTime.MIN);}/*** 下周结束时间** return*/public static LocalDateTime nextWeekEndTime() {LocalDate nextWeek LocalDate.now().plus(1L, ChronoUnit.WEEKS);return LocalDateTime.of(nextWeek.plusDays(7 - nextWeek.getDayOfWeek().getValue()), LocalTime.MAX);}/*** 下月开始时间** return*/public static LocalDateTime nextMonthStartTime() {return LocalDateTime.of(LocalDate.now().plus(1L, ChronoUnit.MONTHS).with(TemporalAdjusters.firstDayOfMonth()), LocalTime.MIN);}/*** 下月结束时间** return*/public static LocalDateTime nextMonthEndTime() {return LocalDateTime.of(LocalDate.now().plus(1L, ChronoUnit.MONTHS).with(TemporalAdjusters.lastDayOfMonth()), LocalTime.MAX);}/*** 下季度开始时间** return*/public static LocalDateTime nextQuarterStartTime() {LocalDate now LocalDate.now();Month firstMonthOfQuarter Month.of(now.getMonth().firstMonthOfQuarter().getValue());Month firstMonthOfNextQuarter firstMonthOfQuarter.plus(3L);int yearOfNextQuarter firstMonthOfQuarter.getValue() 9 ? now.getYear() 1 : now.getYear();return LocalDateTime.of(LocalDate.of(yearOfNextQuarter, firstMonthOfNextQuarter, 1), LocalTime.MIN);}/*** 下季度结束时间** return*/public static LocalDateTime nextQuarterEndTime() {LocalDate now LocalDate.now();Month firstMonthOfQuarter Month.of(now.getMonth().firstMonthOfQuarter().getValue());Month firstMonthOfNextQuarter firstMonthOfQuarter.plus(5L);int yearOfNextQuarter firstMonthOfQuarter.getValue() 9 ? now.getYear() 1 : now.getYear();return LocalDateTime.of(LocalDate.of(yearOfNextQuarter, firstMonthOfNextQuarter, firstMonthOfNextQuarter.maxLength()), LocalTime.MAX);}/*** 上半年开始时间** return*/public static LocalDateTime nextHalfYearStartTime() {LocalDate now LocalDate.now();int nextHalfYear (now.getMonthValue() 6) ? now.getYear() 1 : now.getYear();Month firstMonthOfNextHalfYear (now.getMonthValue() 6) ? Month.JANUARY : Month.JULY;return LocalDateTime.of(LocalDate.of(nextHalfYear, firstMonthOfNextHalfYear, 1), LocalTime.MIN);}/*** 上半年结束时间** return*/public static LocalDateTime nextHalfYearEndTime() {LocalDate now LocalDate.now();int lastHalfYear (now.getMonthValue() 6) ? now.getYear() 1 : now.getYear();Month lastMonthOfNextHalfYear (now.getMonthValue() 6) ? Month.JUNE : Month.DECEMBER;return LocalDateTime.of(LocalDate.of(lastHalfYear, lastMonthOfNextHalfYear, lastMonthOfNextHalfYear.maxLength()), LocalTime.MAX);}/*** 下一年开始时间** return*/public static LocalDateTime nextYearStartTime() {return LocalDateTime.of(LocalDate.now().plus(1L, ChronoUnit.YEARS).with(TemporalAdjusters.firstDayOfYear()), LocalTime.MIN);}/*** 下一年结束时间** return*/public static LocalDateTime nextYearEndTime() {return LocalDateTime.of(LocalDate.now().plus(1L, ChronoUnit.YEARS).with(TemporalAdjusters.lastDayOfYear()), LocalTime.MAX);}public static void main(String[] args) {System.out.println(当前时间 now());System.out.println(Date 转 LocalDateTime convert(new Date()));System.out.println(LocalDateTime 转 Date convert(LocalDateTime.now()));System.out.println(今天开始时间 todayStartTime());System.out.println(今天结束时间 todayEndTime());System.out.println(昨天开始时间 yesterdayStartTime());System.out.println(昨天结束时间 yesterdayEndTime());System.out.println(最近7天开始时间 last7DaysStartTime());System.out.println(最近7天结束时间 last7DaysEndTime());System.out.println(最近30天开始时间 last30DaysStartTime());System.out.println(最近30天天结束时间 last30DaysEndTime());System.out.println(最近一年开始时间 last1YearStartTime());System.out.println(最近一年结束时间 last1YearEndTime());System.out.println(本周开始时间 weekStartTime());System.out.println(本周结束时间 weekEndTime());System.out.println(本月开始时间 monthStartTime());System.out.println(本月结束时间 monthEndTime());System.out.println(本季度开始时间 quarterStartTime());System.out.println(本季度结束时间 quarterEndTime());System.out.println(本半年开始时间 halfYearStartTime());System.out.println(本半年结束时间 halfYearEndTime());System.out.println(本年开始时间 yearStartTime());System.out.println(本年结束时间 yearEndTime());System.out.println(上周开始时间 lastWeekStartTime());System.out.println(上周结束时间 lastWeekEndTime());System.out.println(上月开始时间 lastMonthStartTime());System.out.println(上月结束时间 lastMonthEndTime());System.out.println(上季度开始时间 lastQuarterStartTime());System.out.println(上季度结束时间 lastQuarterEndTime());System.out.println(上半年开始时间 lastHalfYearStartTime());System.out.println(上半年结束时间 lastHalfYearEndTime());System.out.println(上一年开始时间 lastYearStartTime());System.out.println(上一年结束时间 lastYearEndTime());System.out.println(下周开始时间 nextWeekStartTime());System.out.println(下周结束时间 nextWeekEndTime());System.out.println(下月开始时间 nextMonthStartTime());System.out.println(下月结束时间 nextMonthEndTime());System.out.println(下季度开始时间 nextQuarterStartTime());System.out.println(下季度结束时间 nextQuarterEndTime());System.out.println(下半年开始时间 nextHalfYearStartTime());System.out.println(下半年结束时间 nextHalfYearEndTime());System.out.println(下一年开始时间 nextYearStartTime());System.out.println(下一年结束时间 nextYearEndTime());}}LocalDate,LocalDateTime获取每周每月每年的第一天和最后一天获取一周七天的日期获取每月的所有日期
最近再弄日历相关的东西然后就在获取每月所有日期每周所有日期每周每月每年的第一天和最后一天等工具类没有这些方法就写下来记录一下 /*** 一周的第一天** param localDate 当地日期* return {link LocalDate}*/public static LocalDate firstDayOfWeek(LocalDate localDate){return localDate.with(DayOfWeek.MONDAY);}/*** 一周的最后一天** param localDate 当地日期* return {link LocalDate}*/public static LocalDate lastDayOfWeek(LocalDate localDate){return localDate.with(DayOfWeek.SUNDAY);}/*** 月的第一天** param localDate 当地日期* return {link LocalDate}*/public static LocalDate firstDayOfMonth(LocalDate localDate){return localDate.with(TemporalAdjusters.firstDayOfMonth());}/*** 月的最后一天** param localDate 当地日期* return {link LocalDate}*/public static LocalDate lastDayOfMonth(LocalDate localDate){return localDate.with(TemporalAdjusters.lastDayOfMonth());}/*** 每年的第一天** param localDate 当地日期* return {link LocalDate}*/public static LocalDate firstDayOfYear(LocalDate localDate){return localDate.with(TemporalAdjusters.firstDayOfYear());}/*** 每年的最后一天** param localDate 当地日期* return {link LocalDate}*/public static LocalDate lastDayOfYear(LocalDate localDate){return localDate.with(TemporalAdjusters.lastDayOfYear());}/*** 每周的所有日期 即周一到周日** param localDate 当地日期* return {link ListLocalDate}*/public static ListLocalDate allDaysOfWeek(LocalDate localDate){ListLocalDate allDaysnew ArrayList();allDays.add(localDate.with(DayOfWeek.MONDAY));allDays.add(localDate.with(DayOfWeek.TUESDAY));allDays.add(localDate.with(DayOfWeek.WEDNESDAY));allDays.add(localDate.with(DayOfWeek.THURSDAY));allDays.add(localDate.with(DayOfWeek.FRIDAY));allDays.add(localDate.with(DayOfWeek.SATURDAY));allDays.add(localDate.with(DayOfWeek.SUNDAY));return allDays;}/*** 每月的所有日期 即1日到31日** param localDate 当地日期* return {link ListLocalDate}*/public static ListLocalDate allDaysOfMonth(LocalDate localDate){ListLocalDate allDaysnew ArrayList();LocalDate firstDayOfMonth firstDayOfMonth(localDate);LocalDate lastDayOfMonth lastDayOfMonth(localDate);allDays.add(firstDayOfMonth);int i 1;LocalDate temp firstDayOfMonth;while (!temp.isEqual(lastDayOfMonth)){LocalDate day firstDayOfMonth.plusDays(i);allDays.add(day);tempday;i;}return allDays;}如何获取农历日期生肖传统节日
hutool工具包有相关的现成的工具包可以使用 LocalDateTime获取当前月的第一天和最后一天 DateTimeFormatter dateTimeFormatter DateTimeFormatter.ofPattern(yyyy-MM-dd HH:mm:ss);LocalDateTime now LocalDateTime.now();LocalDateTime firstday now.with(TemporalAdjusters.firstDayOfMonth()).withHour(0).withMinute(0).withSecond(0);LocalDateTime lastDay now.with(TemporalAdjusters.lastDayOfMonth()).withHour(23).withMinute(59).withSecond(59);