Java时间工具类(Date和LocalDateTime)

news2025/1/12 6:18:40

Date

在这里插入图片描述

package com.qiangesoft.utils.date;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * 日期工具类
 *
 * @author lq
 * @date 2024-05-23
 */
public class DateUtil {

    public static final String[] CHINESE_WEEK_DAY = new String[]{"周一", "周二", "周三", "周四", "周五", "周六", "周日"};

    /**
     * 显示到日期
     */
    public static final String FORMAT_DATE = "yyyy-MM-dd";
    /**
     * 显示到小时
     */
    public static final String FORMAT_HOUR = "yyyy-MM-dd HH";
    /**
     * 显示到分
     */
    public static final String FORMAT_MINUTE = "yyyy-MM-dd HH:mm";
    /**
     * 显示到秒
     */
    public static final String FORMAT_SECOND = "yyyy-MM-dd HH:mm:ss";
    /**
     * 显示到毫秒
     */
    public static final String FORMAT_MILLISECOND = "yyyy-MM-dd HH:mm:ss:SSS";
    /**
     * 数字格式显示到日期
     */
    public static final String FORMAT_DATE_NUMBER = "yyyyMMdd";
    /**
     * 数字格式显示到小时
     */
    public static final String FORMAT_HOUR_NUMBER = "yyyyMMddHH";
    /**
     * 数字格式显示到分
     */
    public static final String FORMAT_MINUTE_NUMBER = "yyyyMMddHHmm";
    /**
     * 数字格式显示到秒
     */
    public static final String FORMAT_SECOND_NUMBER = "yyyyMMddHHmmss";
    /**
     * 数字格式显示到毫秒
     */
    public static final String FORMAT_MILLISECOND_NUMBER = "yyyyMMddHHmmssSSS";

    /**
     * 当前时间
     *
     * @return
     */
    public static Date now() {
        return new Date();
    }

    /**
     * 当日的开始时间
     *
     * @return
     */
    public static Date startOfDay() {
        return startOfDay(now());
    }

    /**
     * 某天的开始时间
     *
     * @param date
     * @return
     */
    public static Date startOfDay(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MILLISECOND, 0);
        return calendar.getTime();
    }

    /**
     * 当日的结束时间
     *
     * @return
     */
    public static Date endOfDay() {
        return endOfDay(now());
    }

    /**
     * 某天的结束时间
     *
     * @param date
     * @return
     */
    public static Date endOfDay(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(Calendar.HOUR_OF_DAY, 23);
        calendar.set(Calendar.MINUTE, 59);
        calendar.set(Calendar.SECOND, 59);
        calendar.set(Calendar.MILLISECOND, 999);
        return calendar.getTime();
    }

    /**
     * 本周第几天
     *
     * @return
     */
    public static int dayOfWeek() {
        return dayOfWeek(now());
    }

    /**
     * 某周第几天
     *
     * @param date
     * @return
     */
    public static int dayOfWeek(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        int dayNum = calendar.get(Calendar.DAY_OF_WEEK);
        return dayNum == 1 ? 7 : dayNum - 1;
    }

    /**
     * 本周星期几
     *
     * @return
     */
    public static String dayNameOfWeek() {
        return dayNameOfWeek(now());
    }

    /**
     * 某周星期几
     *
     * @param date
     * @return
     */
    public static String dayNameOfWeek(Date date) {
        int dayNum = dayOfWeek(date);
        return CHINESE_WEEK_DAY[dayNum - 1];
    }

    /**
     * 本周的开始时间
     *
     * @return
     */
    public static Date startOfWeek() {
        return startOfWeek(now());
    }

    /**
     * 某周的开始时间
     *
     * @param date
     * @return
     */
    public static Date startOfWeek(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MILLISECOND, 0);
        return calendar.getTime();
    }

    /**
     * 本周的结束时间
     *
     * @return
     */
    public static Date endOfWeek() {
        return endOfWeek(now());
    }

    /**
     * 某周的结束时间
     *
     * @param date
     * @return
     */
    public static Date endOfWeek(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
        calendar.set(Calendar.HOUR_OF_DAY, 23);
        calendar.set(Calendar.MINUTE, 59);
        calendar.set(Calendar.SECOND, 59);
        calendar.set(Calendar.MILLISECOND, 999);
        calendar.add(Calendar.WEEK_OF_YEAR, 1);
        return calendar.getTime();
    }

    /**
     * 当月开始时间
     *
     * @return
     */
    public static Date startOfMonth() {
        return startOfMonth(now());
    }

    /**
     * 某月开始时间
     *
     * @param date
     * @return
     */
    public static Date startOfMonth(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(Calendar.DAY_OF_MONTH, 1);
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MILLISECOND, 0);
        return calendar.getTime();
    }

    /**
     * 当月结束时间
     *
     * @return
     */
    public static Date endOfMonth() {
        return endOfMonth(now());
    }

    /**
     * 某月结束时间
     *
     * @param date
     * @return
     */
    public static Date endOfMonth(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
        calendar.set(Calendar.HOUR_OF_DAY, 23);
        calendar.set(Calendar.MINUTE, 59);
        calendar.set(Calendar.SECOND, 59);
        calendar.set(Calendar.MILLISECOND, 999);
        return calendar.getTime();
    }

    /**
     * 当年开始时间
     *
     * @return
     */
    public static Date startOfYear() {
        return startOfYear(now());
    }

    /**
     * 某年开始时间
     *
     * @param date
     * @return
     */
    public static Date startOfYear(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(Calendar.DAY_OF_YEAR, 1);
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MILLISECOND, 0);
        return calendar.getTime();
    }

    /**
     * 当年结束时间
     *
     * @return
     */
    public static Date endOfYear() {
        return endOfYear(now());
    }

    /**
     * 某年结束时间
     *
     * @param date
     * @return
     */
    public static Date endOfYear(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(Calendar.DAY_OF_YEAR, calendar.getActualMaximum(Calendar.DAY_OF_YEAR));
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MILLISECOND, 0);
        return calendar.getTime();
    }

    /**
     * 当日是否属于时间范围内
     *
     * @param startTime
     * @param endTime
     * @return
     */
    public static Boolean between(Date startTime, Date endTime) {
        return between(now(), startTime, endTime);
    }

    /**
     * 时间范围内
     *
     * @param date
     * @param startTime
     * @param endTime
     * @return
     */
    public static Boolean between(Date date, Date startTime, Date endTime) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        Calendar start = Calendar.getInstance();
        start.setTime(startTime);
        Calendar end = Calendar.getInstance();
        end.setTime(endTime);
        return calendar.after(start) && calendar.before(end);
    }

    /**
     * 时间格式化
     *
     * @param date
     * @return
     */
    public static String format(Date date) {
        return format(date, FORMAT_SECOND);
    }

    /**
     * 时间格式化
     *
     * @param date
     * @param format
     * @return
     */
    public static String format(Date date, String format) {
        SimpleDateFormat dateFormat = new SimpleDateFormat(format);
        return dateFormat.format(date);
    }

    /**
     * 字符串转时间
     *
     * @param date
     * @param format
     * @return
     */
    public static Date parse(String date, String format) throws ParseException {
        SimpleDateFormat dateFormat = new SimpleDateFormat(format);
        return dateFormat.parse(date);
    }

    /**
     * 增加秒
     *
     * @param second
     * @return
     */
    public static Date addSecond(int second) {
        return addSecond(now(), second);
    }

    /**
     * 增加秒
     *
     * @param date
     * @param second
     * @return
     */
    public static Date addSecond(Date date, int second) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.SECOND, second);
        return calendar.getTime();
    }

    /**
     * 增加分钟
     *
     * @param minute
     * @return
     */
    public static Date addMinute(int minute) {
        return addMinute(now(), minute);
    }

    /**
     * 增加分钟
     *
     * @param date
     * @param minute
     * @return
     */
    public static Date addMinute(Date date, int minute) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.MINUTE, minute);
        return calendar.getTime();
    }

    /**
     * 增加小时
     *
     * @param hour
     * @return
     */
    public static Date addHour(int hour) {
        return addHour(now(), hour);
    }

    /**
     * 增加小时
     *
     * @param date
     * @param hour
     * @return
     */
    public static Date addHour(Date date, int hour) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.HOUR, hour);
        return calendar.getTime();
    }

    /**
     * 增加天
     *
     * @param day
     * @return
     */
    public static Date addDay(int day) {
        return addDay(day);
    }

    /**
     * 增加天
     *
     * @param date
     * @param day
     * @return
     */
    public static Date addDay(Date date, int day) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.DATE, day);
        return calendar.getTime();
    }

    /**
     * 增加周
     *
     * @param week
     * @return
     */
    public static Date addWeek(int week) {
        return addWeek(now(), week);
    }

    /**
     * 增加周
     *
     * @param date
     * @param week
     * @return
     */
    public static Date addWeek(Date date, int week) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.WEEK_OF_YEAR, week);
        return calendar.getTime();
    }

    /**
     * 增加月
     *
     * @param month
     * @return
     */
    public static Date addMonth(int month) {
        return addMonth(now(), month);
    }

    /**
     * 增加月
     *
     * @param date
     * @param month
     * @return
     */
    public static Date addMonth(Date date, int month) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.MONTH, month);
        return calendar.getTime();
    }

    /**
     * 增加年
     *
     * @param year
     * @return
     */
    public static Date addYear(int year) {
        return addYear(now(), year);
    }

    /**
     * 增加年
     *
     * @param date
     * @param year
     * @return
     */
    public static Date addYear(Date date, int year) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.YEAR, year);
        return calendar.getTime();
    }

    /**
     * 减少秒
     *
     * @param second
     * @return
     */
    public static Date reduceSecond(int second) {
        return reduceSecond(now(), second);
    }

    /**
     * 减少秒
     *
     * @param date
     * @param second
     * @return
     */
    public static Date reduceSecond(Date date, int second) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.SECOND, -second);
        return calendar.getTime();
    }

    /**
     * 减少分钟
     *
     * @param minute
     * @return
     */
    public static Date reduceMinute(int minute) {
        return reduceMinute(now(), minute);
    }

    /**
     * 减少分钟
     *
     * @param date
     * @param minute
     * @return
     */
    public static Date reduceMinute(Date date, int minute) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.MINUTE, -minute);
        return calendar.getTime();
    }

    /**
     * 减少小时
     *
     * @param hour
     * @return
     */
    public static Date reduceHour(int hour) {
        return reduceHour(now(), hour);
    }

    /**
     * 减少小时
     *
     * @param date
     * @param hour
     * @return
     */
    public static Date reduceHour(Date date, int hour) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.HOUR, -hour);
        return calendar.getTime();
    }

    /**
     * 减少天
     *
     * @param day
     * @return
     */
    public static Date reduceDay(int day) {
        return reduceDay(now(), day);
    }

    /**
     * 减少天
     *
     * @param date
     * @param day
     * @return
     */
    public static Date reduceDay(Date date, int day) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.DATE, -day);
        return calendar.getTime();
    }

    /**
     * 减少周
     *
     * @param week
     * @return
     */
    public static Date reduceWeek(int week) {
        return reduceWeek(now(), week);
    }

    /**
     * 减少周
     *
     * @param date
     * @param week
     * @return
     */
    public static Date reduceWeek(Date date, int week) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.WEEK_OF_YEAR, -week);
        return calendar.getTime();
    }

    /**
     * 减少月
     *
     * @param month
     * @return
     */
    public static Date reduceMonth(int month) {
        return reduceMonth(now(), month);
    }

    /**
     * 减少月
     *
     * @param date
     * @param month
     * @return
     */
    public static Date reduceMonth(Date date, int month) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.MONTH, -month);
        return calendar.getTime();
    }

    /**
     * 减少年
     *
     * @param year
     * @return
     */
    public static Date reduceYear(int year) {
        return reduceYear(now(), year);
    }

    /**
     * 减少年
     *
     * @param date
     * @param year
     * @return
     */
    public static Date reduceYear(Date date, int year) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.YEAR, -year);
        return calendar.getTime();
    }

    public static void main(String[] args) throws ParseException {
        Date now = now();

        System.out.println("现在时间:" + format(now));
        System.out.println("今天开始时间:" + format(startOfDay(now)));
        System.out.println("今天结束时间:" + format(endOfDay(now)));
        System.out.println("本周第几天:" + dayOfWeek(now));
        System.out.println("本周星期几:" + dayNameOfWeek(now));
        System.out.println("本周开始时间:" + format(startOfWeek(now)));
        System.out.println("本周结束时间:" + format(endOfWeek(now)));
        System.out.println("本月开始时间:" + format(startOfMonth(now)));
        System.out.println("本月结束时间:" + format(endOfMonth(now)));
        System.out.println("本年开始时间:" + format(startOfYear(now)));
        System.out.println("本年结束时间:" + format(endOfYear(now)));
        System.out.println("是否属于时间范围:" + between(reduceDay(now, 1), addDay(now, 2)));
        System.out.println("时间格式化:" + format(now, FORMAT_MINUTE));
        System.out.println("字符串转换时间:" + parse("2024-11-24 11:17:04", FORMAT_SECOND));
        System.out.println("现在时间加100秒:" + format(addSecond(now, 100)));
        System.out.println("现在时间加12分钟:" + format(addMinute(now, 12)));
        System.out.println("现在时间加2小时:" + format(addHour(now, 2)));
        System.out.println("现在时间加5天:" + format(addDay(now, 5)));
        System.out.println("现在时间加3周:" + format(addWeek(now, 3)));
        System.out.println("现在时间加6月:" + format(addMonth(now, 6)));
        System.out.println("现在时间加1年:" + format(addYear(now, 1)));
        System.out.println("现在时间减100秒:" + format(reduceSecond(now, 100)));
        System.out.println("现在时间减12分钟:" + format(reduceMinute(now, 12)));
        System.out.println("现在时间减2小时:" + format(reduceHour(now, 2)));
        System.out.println("现在时间减5天:" + format(reduceDay(now, 5)));
        System.out.println("现在时间减3周:" + format(reduceWeek(now, 3)));
        System.out.println("现在时间减6月:" + format(reduceMonth(now, 6)));
        System.out.println("现在时间减1年:" + format(reduceYear(now, 1)));
    }

}

LocalDateTime

在这里插入图片描述

package com.qiangesoft.utils.date;

import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;

/**
 * 日期工具类
 *
 * @author lq
 * @date 2024-05-23
 */
public class LocalDateUtil {

    public static final String[] CHINESE_WEEK_DAY = new String[]{"周一", "周二", "周三", "周四", "周五", "周六", "周日"};

    /**
     * 显示到日期
     */
    public static final String FORMAT_DATE = "yyyy-MM-dd";
    /**
     * 显示到小时
     */
    public static final String FORMAT_HOUR = "yyyy-MM-dd HH";
    /**
     * 显示到分
     */
    public static final String FORMAT_MINUTE = "yyyy-MM-dd HH:mm";
    /**
     * 显示到秒
     */
    public static final String FORMAT_SECOND = "yyyy-MM-dd HH:mm:ss";
    /**
     * 显示到毫秒
     */
    public static final String FORMAT_MILLISECOND = "yyyy-MM-dd HH:mm:ss:SSS";
    /**
     * 数字格式显示到日期
     */
    public static final String FORMAT_DATE_NUMBER = "yyyyMMdd";
    /**
     * 数字格式显示到小时
     */
    public static final String FORMAT_HOUR_NUMBER = "yyyyMMddHH";
    /**
     * 数字格式显示到分
     */
    public static final String FORMAT_MINUTE_NUMBER = "yyyyMMddHHmm";
    /**
     * 数字格式显示到秒
     */
    public static final String FORMAT_SECOND_NUMBER = "yyyyMMddHHmmss";
    /**
     * 数字格式显示到毫秒
     */
    public static final String FORMAT_MILLISECOND_NUMBER = "yyyyMMddHHmmssSSS";

    /**
     * 当前时间
     *
     * @return
     */
    public static LocalDateTime now() {
        return LocalDateTime.now();
    }

    /**
     * 当日的开始时间
     *
     * @return
     */
    public static LocalDateTime startOfDay() {
        return now().toLocalDate().atStartOfDay();
    }

    /**
     * 某天的开始时间
     *
     * @param date
     * @return
     */
    public static LocalDateTime startOfDay(LocalDateTime date) {
        return date.toLocalDate().atStartOfDay();
    }

    /**
     * 当日的结束时间
     *
     * @return
     */
    public static LocalDateTime endOfDay() {
        return now().toLocalDate().atTime(LocalTime.MAX);
    }

    /**
     * 某天的结束时间
     *
     * @param date
     * @return
     */
    public static LocalDateTime endOfDay(LocalDateTime date) {
        return date.toLocalDate().atTime(LocalTime.MAX);
    }

    /**
     * 本周第几天
     *
     * @return
     */
    public static int dayOfWeek() {
        return dayOfWeek(now());
    }

    /**
     * 某周第几天
     *
     * @param date
     * @return
     */
    public static int dayOfWeek(LocalDateTime date) {
        DayOfWeek dayOfWeek = date.getDayOfWeek();
        return dayOfWeek.getValue();
    }

    /**
     * 本周星期几
     *
     * @return
     */
    public static String dayNameOfWeek() {
        return dayNameOfWeek(now());
    }

    /**
     * 某周星期几
     *
     * @param date
     * @return
     */
    public static String dayNameOfWeek(LocalDateTime date) {
        int dayNum = dayOfWeek(date);
        return CHINESE_WEEK_DAY[dayNum - 1];
    }

    /**
     * 本周开始时间
     *
     * @return
     */
    public static LocalDateTime startOfWeek() {
        return startOfWeek(now());
    }

    /**
     * 某周开始时间
     *
     * @param date
     * @return
     */
    public static LocalDateTime startOfWeek(LocalDateTime date) {
        return date.minusDays(date.getDayOfWeek().getValue() - 1).toLocalDate().atStartOfDay();
    }

    /**
     * 本周结束时间
     *
     * @return
     */
    public static LocalDateTime endOfWeek() {
        return endOfWeek(now());
    }

    /**
     * 某周结束时间
     *
     * @param date
     * @return
     */
    public static LocalDateTime endOfWeek(LocalDateTime date) {
        return LocalDateTime.of(LocalDate.from(date.plusDays(8 - date.getDayOfWeek().getValue())), LocalTime.MAX);
    }

    /**
     * 当月开始时间
     *
     * @return
     */
    public static LocalDateTime startOfMonth() {
        return startOfMonth(now());
    }

    /**
     * 某月开始时间
     *
     * @param date
     * @return
     */
    public static LocalDateTime startOfMonth(LocalDateTime date) {
        return date.toLocalDate().with(TemporalAdjusters.firstDayOfMonth()).atTime(LocalTime.MIN);
    }

    /**
     * 当月结束时间
     *
     * @return
     */
    public static LocalDateTime endOfMonth() {
        return endOfMonth(now());
    }

    /**
     * 某月结束时间
     *
     * @param date
     * @return
     */
    public static LocalDateTime endOfMonth(LocalDateTime date) {
        return date.toLocalDate().with(TemporalAdjusters.lastDayOfMonth()).atTime(LocalTime.MAX);
    }

    /**
     * 当年开始时间
     *
     * @return
     */
    public static LocalDateTime startOfYear() {
        return startOfYear(now());
    }

    /**
     * 某年开始时间
     *
     * @param date
     * @return
     */
    public static LocalDateTime startOfYear(LocalDateTime date) {
        return date.toLocalDate().with(TemporalAdjusters.firstDayOfYear()).atTime(LocalTime.MIN);
    }

    /**
     * 当年结束时间
     *
     * @return
     */
    public static LocalDateTime endOfYear() {
        return endOfYear(now());
    }

    /**
     * 某年结束时间
     *
     * @param date
     * @return
     */
    public static LocalDateTime endOfYear(LocalDateTime date) {
        return date.toLocalDate().with(TemporalAdjusters.lastDayOfYear()).atTime(LocalTime.MAX);
    }

    /**
     * 当日是否属于时间范围内
     *
     * @param startTime
     * @param endTime
     * @return
     */
    public static Boolean between(LocalDateTime startTime, LocalDateTime endTime) {
        return between(now(), startTime, endTime);
    }

    /**
     * 时间范围内
     *
     * @param date
     * @param startTime
     * @param endTime
     * @return
     */
    public static Boolean between(LocalDateTime date, LocalDateTime startTime, LocalDateTime endTime) {
        return date.isAfter(startTime) && date.isBefore(endTime);
    }

    /**
     * 时间格式化
     *
     * @param date
     * @return
     */
    public static String format(LocalDateTime date) {
        return format(date, FORMAT_SECOND);
    }

    /**
     * 时间格式化
     *
     * @param date
     * @param format
     * @return
     */
    public static String format(LocalDateTime date, String format) {
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
        return date.format(formatter);
    }

    /**
     * 字符串转换时间
     *
     * @param date
     * @param format
     * @return
     */
    public static LocalDateTime parse(String date, String format) {
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
        return LocalDateTime.parse(date, formatter);
    }

    /**
     * 增加秒
     *
     * @param second
     * @return
     */
    public static LocalDateTime addSecond(int second) {
        return addSecond(now(), second);
    }

    /**
     * 增加秒
     *
     * @param date
     * @param second
     * @return
     */
    public static LocalDateTime addSecond(LocalDateTime date, int second) {
        return date.plusSeconds(second);
    }

    /**
     * 增加分钟
     *
     * @param minute
     * @return
     */
    public static LocalDateTime addMinute(int minute) {
        return addMinute(now(), minute);
    }

    /**
     * 增加分钟
     *
     * @param date
     * @param minute
     * @return
     */
    public static LocalDateTime addMinute(LocalDateTime date, int minute) {
        return date.plusMinutes(minute);
    }

    /**
     * 增加小时
     *
     * @param hour
     * @return
     */
    public static LocalDateTime addHour(int hour) {
        return addHour(now(), hour);
    }

    /**
     * 增加小时
     *
     * @param date
     * @param hour
     * @return
     */
    public static LocalDateTime addHour(LocalDateTime date, int hour) {
        return date.plusHours(hour);
    }

    /**
     * 增加天
     *
     * @param day
     * @return
     */
    public static LocalDateTime addDay(int day) {
        return addDay(now(), day);
    }

    /**
     * 增加天
     *
     * @param date
     * @param day
     * @return
     */
    public static LocalDateTime addDay(LocalDateTime date, int day) {
        return date.plusDays(day);
    }

    /**
     * 增加周
     *
     * @param week
     * @return
     */
    public static LocalDateTime addWeek(int week) {
        return addWeek(now(), week);
    }

    /**
     * 增加周
     *
     * @param date
     * @param week
     * @return
     */
    public static LocalDateTime addWeek(LocalDateTime date, int week) {
        return date.plusWeeks(week);
    }

    /**
     * 增加月
     *
     * @param month
     * @return
     */
    public static LocalDateTime addMonth(int month) {
        return addMonth(now(), month);
    }

    /**
     * 增加月
     *
     * @param date
     * @param month
     * @return
     */
    public static LocalDateTime addMonth(LocalDateTime date, int month) {
        return date.plusMonths(month);
    }

    /**
     * 增加年
     *
     * @param year
     * @return
     */
    public static LocalDateTime addYear(int year) {
        return addYear(now(), year);
    }

    /**
     * 增加年
     *
     * @param date
     * @param year
     * @return
     */
    public static LocalDateTime addYear(LocalDateTime date, int year) {
        return date.plusYears(year);
    }

    /**
     * 减少秒
     *
     * @param second
     * @return
     */
    public static LocalDateTime reduceSecond(int second) {
        return reduceSecond(now(), second);
    }

    /**
     * 减少秒
     *
     * @param date
     * @param second
     * @return
     */
    public static LocalDateTime reduceSecond(LocalDateTime date, int second) {
        return date.minusSeconds(second);
    }

    /**
     * 减少分钟
     *
     * @param minute
     * @return
     */
    public static LocalDateTime reduceMinute(int minute) {
        return reduceMinute(now(), minute);
    }

    /**
     * 减少分钟
     *
     * @param date
     * @param minute
     * @return
     */
    public static LocalDateTime reduceMinute(LocalDateTime date, int minute) {
        return date.minusMinutes(minute);
    }

    /**
     * 减少小时
     *
     * @param hour
     * @return
     */
    public static LocalDateTime reduceHour(int hour) {
        return reduceHour(now(), hour);
    }

    /**
     * 减少小时
     *
     * @param date
     * @param hour
     * @return
     */
    public static LocalDateTime reduceHour(LocalDateTime date, int hour) {
        return date.minusHours(hour);
    }

    /**
     * 减少天
     *
     * @param day
     * @return
     */
    public static LocalDateTime reduceDay(int day) {
        return reduceDay(now(), day);
    }

    /**
     * 减少天
     *
     * @param date
     * @param day
     * @return
     */
    public static LocalDateTime reduceDay(LocalDateTime date, int day) {
        return date.minusDays(day);
    }

    /**
     * 减少周
     *
     * @param week
     * @return
     */
    public static LocalDateTime reduceWeek(int week) {
        return reduceWeek(now(), week);
    }

    /**
     * 减少周
     *
     * @param date
     * @param week
     * @return
     */
    public static LocalDateTime reduceWeek(LocalDateTime date, int week) {
        return date.minusWeeks(week);
    }

    /**
     * 减少月
     *
     * @param month
     * @return
     */
    public static LocalDateTime reduceMonth(int month) {
        return reduceMonth(now(), month);
    }

    /**
     * 减少月
     *
     * @param date
     * @param month
     * @return
     */
    public static LocalDateTime reduceMonth(LocalDateTime date, int month) {
        return date.minusMonths(month);
    }

    /**
     * 减少年
     *
     * @param year
     * @return
     */
    public static LocalDateTime reduceYear(int year) {
        return reduceYear(now(), year);
    }

    /**
     * 减少年
     *
     * @param date
     * @param year
     * @return
     */
    public static LocalDateTime reduceYear(LocalDateTime date, int year) {
        return date.minusYears(year);
    }

    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();

        System.out.println("现在时间:" + format(now));
        System.out.println("今天开始时间:" + format(startOfDay(now)));
        System.out.println("今天结束时间:" + format(endOfDay(now)));
        System.out.println("本周第几天:" + dayOfWeek(now));
        System.out.println("本周星期几:" + dayNameOfWeek(now));
        System.out.println("本周开始时间:" + format(startOfWeek(now)));
        System.out.println("本周结束时间:" + format(endOfWeek(now)));
        System.out.println("本月开始时间:" + format(startOfMonth(now)));
        System.out.println("本月结束时间:" + format(endOfMonth(now)));
        System.out.println("本年开始时间:" + format(startOfYear(now)));
        System.out.println("本年结束时间:" + format(endOfYear(now)));
        System.out.println("是否属于时间范围:" + between(reduceDay(now, 1), addDay(now, 2)));
        System.out.println("时间格式化:" + format(now, FORMAT_MINUTE));
        System.out.println("字符串转换时间:" + parse("2024-11-24 11:17:04", FORMAT_SECOND));
        System.out.println("现在时间加100秒:" + format(addSecond(now, 100)));
        System.out.println("现在时间加12分钟:" + format(addMinute(now, 12)));
        System.out.println("现在时间加2小时:" + format(addHour(now, 2)));
        System.out.println("现在时间加5天:" + format(addDay(now, 5)));
        System.out.println("现在时间加3周:" + format(addWeek(now, 3)));
        System.out.println("现在时间加6月:" + format(addMonth(now, 6)));
        System.out.println("现在时间加1年:" + format(addYear(now, 1)));
        System.out.println("现在时间减100秒:" + format(reduceSecond(now, 100)));
        System.out.println("现在时间减12分钟:" + format(reduceMinute(now, 12)));
        System.out.println("现在时间减2小时:" + format(reduceHour(now, 2)));
        System.out.println("现在时间减5天:" + format(reduceDay(now, 5)));
        System.out.println("现在时间减3周:" + format(reduceWeek(now, 3)));
        System.out.println("现在时间减6月:" + format(reduceMonth(now, 6)));
        System.out.println("现在时间减1年:" + format(reduceYear(now, 1)));
    }

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1687626.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

同一个类中方法调用,导致@Transactional失效

1.背景 查了一下Spring文档,就是上面这段话所说的情况。 2.Spring官方文档有这么一段话 https://docs.spring.io/spring-framework/docs/current/reference/html/data-access.html#transaction-declarative In proxy mode (which is the default), only external …

Docker save load 镜像 docker手动上传导入镜像

docker手动上传导入镜像 因为一些服务器网络限制,导致拉取某些镜像的时候非常慢,可以使用手动的方式导入镜像 1、将镜像归档为tar文件 如果一台服务器里已经存在某个镜像,可以通过docker save 命令 把镜像打成tar包 docker save 命令用于将…

【Vue】Vue2使用ElementUI

目录 Element UI介绍特点Vue2使用Element安装引入ElementUI组件库 使用ElementUI用户注册列表展示其他 mint-ui介绍特点安装组件引入组件Mint-ui相关组件 Element UI 介绍 官网(基于 Vue 2.x ):https://element.eleme.cn/#/zh-CN ElementUI 是一个基于 Vue.js 的桌面端组件库…

K8S认证|CKA题库+答案| 11. 创建PVC

11、创建PVC 您必须在以下Cluster/Node上完成此考题: Cluster Master node Worker node ok8s master …

【加密与解密(第四版)】第二十二章笔记

第二十二章 补丁技术 补丁:文件补丁(修改文件本身的某个数据)和内存补丁(对正在运行的程序的数据进行修改,以达到某种效果) 22.1 文件补丁 文件补丁直接修改可执行文件或某功能模块的二进制代码。 22.2 内…

GPTS 精选:突破效率瓶颈,轻松领先一步别人下班

文章目录 优秀的GPTS推荐数据分析图像设计各种图表/流程图/序列图/思维导图联网搜索数学建模编程专属助手Python助手万能代码助手(Copilot)论文降重(重述/降重)文献搜索(Scholar AI,Scholar GPT&#xff09…

ssm/springoot养老院问诊服务预约系统_96316老年人服务系统

2.管理员: (1)登入注册页面:管理员进行操作时需要是已注册登入的 (2)权限管理:管理员登入后可以运用权限进行相应的操作管理。 (3)用户管理:对用户进行删除、…

C盘磁盘空间不够用,怎样将d盘的空间划分给c盘?

C盘磁盘空间不够用,怎样将d盘的空间划分给c盘? 背景:win10系统下。C盘原有50G,如今只剩下8G,已经捉襟见肘了,想从D盘,割100G给C盘,以后软件能直接装C盘了。操作步骤如下&#xff1a…

如何解读伊朗发布的直升机事故调查报告?一般事故调查报告应怎么写?

如何解读伊朗发布的直升机事故调查报告?一般事故调查报告应怎么写? 据央视新闻客户端消息:当地时间5月23日,伊朗武装部队总参谋部发布首份已故总统莱希及其随行人员乘坐的直升机事故调查报告。以下是#李秘书讲写作#对报告内容的解…

vue3+vite解决项目打包后本地图片等资源找不到的问题

1.在vite.config.js里面做如下配置 import { defineConfig } from vite import vue from vitejs/plugin-vueexport default defineConfig({base: ./, // 打包的静态资源引用路径plugins: [vue()], // 放插件用的resolve: {alias: {: /src // 配置/提示符}}, })上述配置主要就是…

【移花接木】OpenCV4.8 For Java 深度学习 实时人脸检测

学习《OpenCV应用开发:入门、进阶与工程化实践》一书,学会本文所有技能就这么简单! 做真正的OpenCV开发者,从入门到入职,一步到位! 前言 我写这篇文章之前,我搜索整个网络文章跟问各种语言大模…

【Nuxt系列文章】Nuxt3如何更优雅的使用ESLint?

前言 大家好,我是刘明,十年创业老兵,开源技术爱好者。 之前我写了一些关于Nuxt3的技术文章,有些同学很感兴趣。这里做个汇总,大家可以直接点击链接查看。 【Nuxt系列文章】Nuxt3.6带来哪些新特性? 【Nuxt…

【minio】minio文件访问不到问题记录

问题描述: 项目上上传了logo,但是无法回写logo,但是文件minio路径已经返回,并且到minio服务器上也能下载文件; 解决方案: 1.排查Nginx的代理的minio是否正确 2.登录minio服务查一下文件路径policy是否设置访…

【数据结构】树和二叉树的定义 |二叉树的基本特点和性质 |存储与遍历 |递归

专栏文章:数据结构学习笔记 作者主页:格乐斯 前言 树和二叉树的定义 二叉树的基本特点和性质 二叉树的存储与遍历 树的定义 树是n(n>0)个结点的有限集合; 若n0,称为空树; 若n>0,称为非空树&#xf…

【GUI开发基础】

GUI开发基础 🌟项目文件组成✨浅析Pro文件配置 🌟Qt设计师🌟剖析UI文件运行机制🌟UI设计方式✨可视化UI设计✨代码化UI设计 🌟项目文件组成 创建一个QtGUI项目: open QtCreator —> select Creator Pr…

2024 电工杯高校数学建模竞赛(B题)| 平衡膳食食谱 |建模秘籍文章代码思路大全

铛铛!小秘籍来咯! 小秘籍团队独辟蹊径,运用负载均衡,多目标规划等强大工具,构建了这一题的详细解答哦! 为大家量身打造创新解决方案。小秘籍团队,始终引领着建模问题求解的风潮。 抓紧小秘籍&am…

2024 电工杯高校数学建模竞赛(A题)数学建模完整思路+完整代码全解全析

你是否在寻找数学建模比赛的突破点?数学建模进阶思路! 作为经验丰富的数学建模团队,我们将为你带来2024电工杯数学建模竞赛(B题)的全面解析。这个解决方案包不仅包括完整的代码实现,还有详尽的建模过程和解…

【计算机网络原理】浅谈应用层协议的自定义和传输层UDP协议的总结

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…

Javascript特效之鼠标悬停特效【css】

先看一看效果&#xff0c;是不是很炫酷啊&#xff1f;&#xff1f; HTML代码&#xff1a; <!DOCTYPE html> <html><head><meta charset""UTF-8"" /><title>CSS特效&#xff1a;鼠标悬停效果</title><link rel&q…