LocalDateTime工具类:根据当前、周、月、季度、半年、年等维度获取时间

您所在的位置:网站首页 java获取某个时间段的日期 LocalDateTime工具类:根据当前、周、月、季度、半年、年等维度获取时间

LocalDateTime工具类:根据当前、周、月、季度、半年、年等维度获取时间

2023-12-03 03:03| 来源: 网络整理| 查看: 265

1. 简介

  Java8提供了全新的日期处理包(java.time.*),根据Java8日期新特性封装日期时间工具类LocalDateTimeUtils。

2. 相关博客

  Java 8 新特性:日期处理

3. 工具类方法目录

说明方法名称当前时间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. 示例代码

import 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()); } }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3