Date工具类详细汇总-Date日期相关方法
# 1024程序员节 | 征文 #
目录
简介
Date工具类单元测试
Date工具类
简介
本文章是个人总结实际工作中常用到的Date工具类,主要包含Java-jdk8以下版本的Date相关使用方法,可以方便的在工作中灵活的应用,在个人工作期间频繁使用这些时间的格式转换以及时间的运算(加、减),时间的比较,时间的范围获取等等,在这里把时间相关的具体方法展现出来供大家使用参考,方便大家在工作中更加提升效率!
Date工具类方法
-
Date转String方法
-
Date转 格式:DATE_YYYY_PATTERN = "yyyy";
-
Date转 格式:DATE_YYYY_PATTERN2 = "yyyy年";
-
Date转 格式:DATE_MM_PATTERN = "MM";
-
Date转 格式:DATE_MM_PATTERN2 = "MM月";
-
Date转 格式:DATE_DD_PATTERN = "dd";
-
Date转 格式:DATE_DD_PATTERN2 = "dd日";
-
Date转 格式:DATE_YYYY_MM_PATTERN = "yyyy-MM";
-
Date转 格式:DATE_YYYY_MM_PATTERN2 = "yyyy/MM";
-
Date转 格式:DATE_YYYY_MM_PATTERN3 = "yyyyMM";
-
Date转 格式:DATE_YYYY_MM_PATTERN4 = "yyyy.MM";
-
Date转 格式: DATE_YYYY_MM_PATTERN5 = "yyyy年MM";
-
Date转 格式: DATE_MM_DD_PATTERN = "MM-dd";
-
Date转 格式: DATE_MM_DD_PATTERN2 = "MM/dd";
-
Date转 格式: DATE_MM_DD_PATTERN3 = "MMdd";
-
Date转 格式: DATE_MM_DD_PATTERN4 = "MM.dd";
-
Date转 格式: DATE_MM_DD_PATTERN5 = "MM年dd";
-
Date转 格式: DATE_PATTERN = "yyyy-MM-dd";
-
Date转 格式: DATE_PATTERN2 = "yyyy/MM/dd";
-
Date转 格式: DATE_PATTERN3 = "yyyyMMdd";
-
Date转 格式: DATE_PATTERN4 = "yyyy.MM.dd";
-
Date转 格式: DATE_PATTERN5 = "yyyy年MM月dd日";
-
-
String类型日期转Date方法
-
String类型日期转Date方法
-
String类型日期转Date方法+自定义规则
-
-
DateTime转String方法
-
Date转 格式: TIME_HH_PATTERN = "HH";
-
Date转 格式: TIME_hh_PATTERN = "hh";
-
Date转 格式:TIME_HH_PATTERN2 = "HH小时";
-
Date转 格式: TIME_hh_PATTERN2 = "hh小时"; (12小时制)
-
Date转 格式:TIME_MM_PATTERN = "mm";
-
Date转 格式:TIME_MM_PATTERN2 = "mm分钟";
-
Date转 格式:TIME_SS_PATTERN = "ss";
-
Date转 格式:TIME_SS_PATTERN2 = "ss秒";
-
Date转 格式:TIME_HH_MM_PATTERN = "HH:mm";
-
Date转 格式:TIME_hh_MM_PATTERN = "hh:mm";
-
Date转 格式:TIME_MM_SS_PATTERN = "mm:ss";
-
Date转 格式:TIME_HH_MM_SS_PATTERN = "HH:mm:ss"; (24小时制)
-
Date转 格式:TIME_hh_MM_SS_PATTERN = "hh:mm:ss";
-
Date转 格式:DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss";
-
Date转 格式:DATE_TIME_PATTERN2 = "yyyyMMddHHmmss";
-
Date转 格式:DATE_TIME_PATTERN3 = "yyyy/MM/dd HH:mm:ss";
-
Date转 格式:DATE_TIME_PATTERN4 = "yyyy.MM.dd HH:mm:ss";
-
Date转 格式:DATE_TIME_PATTERN5 = "yyyy年MM月dd日 HH:mm:ss";
-
Date转 格式:DATE_TIME_PATTERN6 = "yyyy年MM月dd日 HH时mm分ss秒";
-
Date转 格式:DATE_TIME_PATTERN7 = "yyyy年MM月dd日 HH小时mm分钟ss秒";
-
Date转 格式:DATE_TIME_PATTERN8 = "yyyy年MM月dd日HH小时mm分钟ss秒";
-
Date转 格式:DATE_TIME_h_PATTERN = "yyyy-MM-dd hh:mm:ss";
-
Date转 格式:DATE_TIME_h_PATTERN2 = "yyyyMMddhhmmss";
-
Date转 格式:DATE_TIME_h_PATTERN3 = "yyyy/MM/dd hh:mm:ss";
-
Date转 格式:DATE_TIME_h_PATTERN4 = "yyyy.MM.dd hh:mm:ss";
-
Date转 格式:DATE_TIME_h_PATTERN5 = "yyyy年MM月dd日 hh:mm:ss";
-
Date转 格式:DATE_TIME_h_PATTERN6 = "yyyy年MM月dd日 hh时mm分ss秒";
-
Date转 格式:DATE_TIME_h_PATTERN7 = "yyyy年MM月dd日 hh小时mm分钟ss秒";
-
Date转 格式:DATE_TIME_PATTERN8 = "yyyy年MM月dd日HH小时mm分钟ss秒";
-
Date转 格式:DATE_TIME_SSS_PATTERN = "yyyy-MM-dd HH:mm:ss.SSS";
-
Date转 格式:DATE_TIME_SSS_PATTERN2 = "yyyyMMddHHmmssSSS";
-
Date转 格式:DATE_TIME_SSS_PATTERN3 = "yyyy/MM/dd HH:mm:ss.SSS";
-
Date转 格式:DATE_TIME_SSS_PATTERN4 = "yyyy.MM.dd HH:mm:ss.SSS";
-
Date转 格式:DATE_TIME_SSS_PATTERN5 = "yyyy年MM月dd日 HH:mm:ss.SSS";
-
Date转 格式:DATE_TIME_h_SSS_PATTERN = "yyyy-MM-dd hh:mm:ss.SSS";
-
Date转 格式:DATE_TIME_h_SSS_PATTERN2 = "yyyyMMddhhmmssSSS";
-
Date转 格式:DATE_TIME_h_SSS_PATTERN3 = "yyyy/MM/dd hh:mm:ss.SSS";
-
Date转 格式:DATE_TIME_h_SSS_PATTERN4 = "yyyy.MM.dd hh:mm:ss.SSS";
-
Date转 格式:DATE_TIME_h_SSS_PATTERN5 = "yyyy年MM月dd日 hh:mm:ss.SSS";
-
Date转字符串公共格式化方法
-
-
Date获取时间戳方法
-
获取当前时间的时间戳
-
获取指定时间的时间戳
-
-
String类型日期获取时间戳方法
-
获取指定时间的时间戳 yyyy-MM-dd
-
获取指定时间的时间戳 yyyy-MM-dd hh:mm:ss
-
-
Date日期对【秒】【分钟】【小时】【天】【周】【月】【年】进行加(+)/减(-)方法
-
对日期的【秒】进行加/减
-
对日期的【分钟】进行加/减
-
对日期的【小时】进行加/减
-
对日期的【天】进行加/减
-
对日期的【周】进行加/减
-
对日期的【月】进行加/减
-
对日期的【年】进行加/减
-
获取日期时间对象
-
-
Date日期比较方法
-
比较两个时间是否相等,只比较年
-
比较两个时间是否相等,只比较年 (Java8+)
-
比较两个时间是否相等,只比较年月
-
比较两个时间是否相等,只比较年月 (Java8+)
-
比较两个时间是否相等,只比较年月日
-
比较两个时间是否相等,只比较年月日 (Java8+)
-
比较两个时间是否相等,只比较年月日时分秒
-
比较两个时间是否相等,只比较年月日时分秒 (Java8+)
-
比较两个时间大小,只比较年
-
比较两个时间大小,只比较年 (Java8+)
-
比较两个时间大小,只比较年月
-
比较两个时间大小,只比较年月 (Java8+)
-
比较两个时间大小,只比较年月日
-
比较两个时间大小,只比较年月日 (Java8+)
-
比较两个时间大小,只比较年月日时分秒
-
比较两个时间大小,只比较年月日时分秒 (Java8+)
-
检查两个时间之间的差异是否大于等于30分钟
-
检查两个时间之间的差异是否大于等于多少分钟
-
-
检查两个时间之间的差异是否大于等于多少(自定义)分钟
-
检查两个时间之间的差异是否大于等于30分钟
-
-
Date日期获取方法
-
根据年份获取所有月份
-
根据年份+月份获取月份的所有周
-
根据年份+月份获取月份的所有天
-
根据年份+月份获取月份的所有天
-
根据年份+月份获取指定天的所有小时
-
Date工具类单元测试源码
单元测试代码:
public static void main(String[] args) {Date date = new Date();System.out.println("===========================****************Date转String方法****************===========================");System.out.println("formatDateYYYY(date) = " + formatDateYYYY(date));System.out.println("formatDateYYYY2(date) = " + formatDateYYYY2(date));System.out.println("formatDateMM(date) = " + formatDateMM(date));System.out.println("formatDateMM2(date) = " + formatDateMM2(date));System.out.println("formatDateDD(date) = " + formatDateDD(date));System.out.println("formatDateDD2(date) = " + formatDateDD2(date));System.out.println("formatDateYYYYMM(date) = " + formatDateYYYYMM(date));System.out.println("formatDateYYYYMM2(date) = " + formatDateYYYYMM2(date));System.out.println("formatDateYYYYMM3(date) = " + formatDateYYYYMM3(date));System.out.println("formatDateYYYYMM4(date) = " + formatDateYYYYMM4(date));System.out.println("formatDateYYYYMM5(date) = " + formatDateYYYYMM5(date));System.out.println("formatDateMMDD(date) = " + formatDateMMDD(date));System.out.println("formatDateMMDD2(date) = " + formatDateMMDD2(date));System.out.println("formatDateMMDD3(date) = " + formatDateMMDD3(date));System.out.println("formatDateMMDD4(date) = " + formatDateMMDD4(date));System.out.println("formatDateMMDD5(date) = " + formatDateMMDD5(date));System.out.println("formatDate(date) = " + formatDate(date));System.out.println("formatDate2(date) = " + formatDate2(date));System.out.println("formatDate3(date) = " + formatDate3(date));System.out.println("formatDate4(date) = " + formatDate4(date));System.out.println("formatDate5(date) = " + formatDate5(date));System.out.println("===========================****************DateTime转String方法****************===========================");System.out.println("formatTimeHH(date) = " + formatTimeHH(date));System.out.println("formatTimeHh(date) = " + formatTimeHh(date));System.out.println("formatTimeHH2(date) = " + formatTimeHH2(date));System.out.println("formatTimeHh2(date) = " + formatTimeHh2(date));System.out.println("formatTimeMM(date) = " + formatTimeMM(date));System.out.println("formatTimeMM2(date) = " + formatTimeMM2(date));System.out.println("formatTimeSS(date) = " + formatTimeSS(date));System.out.println("formatTimeSS2(date) = " + formatTimeSS2(date));System.out.println("formatTimeHHMM(date) = " + formatTimeHHMM(date));System.out.println("formatTimeHhMM(date) = " + formatTimeHhMM(date));System.out.println("formatTimeMMSS(date) = " + formatTimeMMSS(date));System.out.println("formatTimeHHMMSS(date) = " + formatTimeHHMMSS(date));System.out.println("formatTimeHhMMSS(date) = " + formatTimeHhMMSS(date));System.out.println("formatDateTime(date) = " + formatDateTime(date));System.out.println("formatDateTime2(date) = " + formatDateTime2(date));System.out.println("formatDateTime3(date) = " + formatDateTime3(date));System.out.println("formatDateTime4(date) = " + formatDateTime4(date));System.out.println("formatDateTime5(date) = " + formatDateTime5(date));System.out.println("formatDateTime6(date) = " + formatDateTime6(date));System.out.println("formatDateTime7(date) = " + formatDateTime7(date));System.out.println("formatDateTime8(date) = " + formatDateTime8(date));System.out.println("formatDateTimeH(date) = " + formatDateTimeH(date));System.out.println("formatDateTimeH2(date) = " + formatDateTimeH2(date));System.out.println("formatDateTimeH3(date) = " + formatDateTimeH3(date));System.out.println("formatDateTimeH4(date) = " + formatDateTimeH4(date));System.out.println("formatDateTimeH5(date) = " + formatDateTimeH5(date));System.out.println("formatDateTimeH6(date) = " + formatDateTimeH6(date));System.out.println("formatDateTimeH7(date) = " + formatDateTimeH7(date));System.out.println("formatDateTimeH8(date) = " + formatDateTimeH8(date));System.out.println("formatDateTimeSSS(date) = " + formatDateTimeSSS(date));System.out.println("formatDateTimeSSS2(date) = " + formatDateTimeSSS2(date));System.out.println("formatDateTimeSSS3(date) = " + formatDateTimeSSS3(date));System.out.println("formatDateTimeSSS4(date) = " + formatDateTimeSSS4(date));System.out.println("formatDateTimeSSS5(date) = " + formatDateTimeSSS5(date));System.out.println("formatDateTimeHSSS(date) = " + formatDateTimeHSSS(date));System.out.println("formatDateTimeHSSS2(date) = " + formatDateTimeHSSS2(date));System.out.println("formatDateTimeHSSS3(date) = " + formatDateTimeHSSS3(date));System.out.println("formatDateTimeHSSS4(date) = " + formatDateTimeHSSS4(date));System.out.println("formatDateTimeHSSS5(date) = " + formatDateTimeHSSS5(date));System.out.println("===========================****************Date获取时间戳方法****************===========================");System.out.println("getNowTimestamp() = " + getNowTimestamp());System.out.println("getDateTimestamp(date) = " + getDateTimestamp(date));System.out.println("===========================****************String类型日期获取时间戳方法****************===========================");System.out.println("getDateTimestampByYYYYMMDD(\"2024-09-09\") = " + getDateTimestampByYYYYMMDD("2024-09-09"));System.out.println("getDateTimestampByYYYYMMDDHHMMSS(\"2024-09-09 14:50:00\") = " + getDateTimestampByYYYYMMDDHHMMSS("2024-09-09 14:50:00"));System.out.println("=============******Date日期对【秒】【分钟】【小时】【天】【周】【月】【年】进行加(+)/减(-)方法*********==============");System.out.println("addDateSeconds(date, 0) = " + addDateSeconds(date, 0));System.out.println("addDateSeconds(date, 1) = " + addDateSeconds(date, 1));System.out.println("addDateSeconds(date, -2) = " + addDateSeconds(date, -2));System.out.println("addDateMinutes(date,0) = " + addDateMinutes(date, 0));System.out.println("addDateMinutes(date,1) = " + addDateMinutes(date, 1));System.out.println("addDateMinutes(date,-2) = " + addDateMinutes(date, -2));System.out.println("addDateHours(date, 0) = " + addDateHours(date, 0));System.out.println("addDateHours(date, 1) = " + addDateHours(date, 1));System.out.println("addDateHours(date, -2) = " + addDateHours(date, -2));System.out.println("addDateDays(date,0) = " + addDateDays(date, 0));System.out.println("addDateDays(date,1) = " + addDateDays(date, 1));System.out.println("addDateDays(date, -2) = " + addDateDays(date, -2));System.out.println("addDateWeeks(date,0) = " + addDateWeeks(date, 0));System.out.println("addDateWeeks(date,1) = " + addDateWeeks(date, 1));System.out.println("addDateMonths(date, 1) = " + addDateMonths(date, 1));System.out.println("addDateMonths(date, -2) = " + addDateMonths(date, -2));System.out.println("addDateYears(date, 0) = " + addDateYears(date, 0));System.out.println("addDateYears(date, 1) = " + addDateYears(date, 1));System.out.println("addDateYears(date, -2) = " + addDateYears(date, -2));System.out.println("=============******Date日期比较方法*********==============");Date date1 = new Date();Date date2 = new Date();System.out.println("compareEqualDateYYYY(date,date1) = " + compareEqualDateYYYY(date, date1));System.out.println("compareEqualDateYYYY(date,date2) = " + compareEqualDateYYYY(date, date2));System.out.println("compareEqualDateYYYY(date1,date2) = " + compareEqualDateYYYY(date1, date2));System.out.println("compareEqualDateYYYYJava8(date,date1) = " + compareEqualDateYYYYJava8(date, date1));System.out.println("compareEqualDateYYYYJava8(date,date2) = " + compareEqualDateYYYYJava8(date, date2));System.out.println("compareEqualDateYYYYJava8(date1,date2) = " + compareEqualDateYYYYJava8(date1, date2));System.out.println("compareEqualDateYYYYMM(date,date1) = " + compareEqualDateYYYYMM(date, date1));System.out.println("compareEqualDateYYYYMM(date,date2) = " + compareEqualDateYYYYMM(date, date2));System.out.println("compareEqualDateYYYYMM(date1,date2) = " + compareEqualDateYYYYMM(date1, date2));System.out.println("compareEqualDateYYYYMMJava8(date,date1) = " + compareEqualDateYYYYMMJava8(date, date1));System.out.println("compareEqualDateYYYYMMJava8(date,date2) = " + compareEqualDateYYYYMMJava8(date, date2));System.out.println("compareEqualDateYYYYMMJava8(date1,date2) = " + compareEqualDateYYYYMMJava8(date1, date2));System.out.println("compareEqualDateYYYYMMDD(date,date1) = " + compareEqualDateYYYYMMDD(date, date1));System.out.println("compareEqualDateYYYYMMDD(date,date2) = " + compareEqualDateYYYYMMDD(date, date2));System.out.println("compareEqualDateYYYYMMDD(date1,date2) = " + compareEqualDateYYYYMMDD(date1, date2));System.out.println("compareEqualDateYYYYMMDDJava8(date,date1) = " + compareEqualDateYYYYMMDDJava8(date, date1));System.out.println("compareEqualDateYYYYMMDDJava8(date,date2) = " + compareEqualDateYYYYMMDDJava8(date, date2));System.out.println("compareEqualDateYYYYMMDDJava8(date1,date2) = " + compareEqualDateYYYYMMDDJava8(date1, date2));System.out.println("compareEqualDateYYYYMMDDHHMMSS(date,date1) = " + compareEqualDateYYYYMMDDHHMMSS(date, date1));System.out.println("compareEqualDateYYYYMMDDHHMMSS(date,date2) = " + compareEqualDateYYYYMMDDHHMMSS(date, date2));System.out.println("compareEqualDateYYYYMMDDHHMMSS(date1,date2) = " + compareEqualDateYYYYMMDDHHMMSS(date1, date2));System.out.println("compareEqualDateYYYYMMDDHHMMSSJava8(date,date1) = " + compareEqualDateYYYYMMDDHHMMSSJava8(date, date1));System.out.println("compareEqualDateYYYYMMDDHHMMSSJava8(date,date2) = " + compareEqualDateYYYYMMDDHHMMSSJava8(date, date2));System.out.println("compareEqualDateYYYYMMDDHHMMSSJava8(date1,date2) = " + compareEqualDateYYYYMMDDHHMMSSJava8(date1, date2));// ==========检查两个时间之间的差异是否大于等于多少分钟==================// 创建两个时间示例Calendar calendar1 = Calendar.getInstance();Calendar calendar2 = Calendar.getInstance();// 设置时间(这里仅为示例,您可以根据需要设置实际时间)calendar1.set(2023, Calendar.OCTOBER, 1, 10, 0, 0); // 2023-10-01 10:00:00calendar2.set(2023, Calendar.OCTOBER, 1, 10, 31, 0); // 2023-10-01 10:31:00// 获取Date对象Date date3 = calendar1.getTime();Date date4 = calendar2.getTime();// 检查时间差是否大于等于30分钟if (isTimeDifferenceMoreThanOrEqual30Minutes(date3, date4)) {System.out.println("时间差大于等于30分钟");} else {System.out.println("时间差小于30分钟");}// ====根据年份获取所有月份====================List<String> traverseMonthsOfYear = traverseMonthsOfYear(2024);System.out.println("traverseMonthsOfYear = ");traverseMonthsOfYear.forEach(System.out::println);}
Date工具类源码
import com.google.common.collect.Lists;
import com.ruoyi.common.core.utils.StringUtils;
import org.joda.time.DateTime;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Calendar;
import java.util.Date;
import java.util.List;public class DateUtils {/*** y:年份* M:月份* d:日期* H:小时(24小时制)* h:小时(12小时制)* m:分钟* s:秒钟* S:毫秒*/public final static String DATE_YYYY_PATTERN = "yyyy";public final static String DATE_YYYY_PATTERN2 = "yyyy年";public final static String DATE_MM_PATTERN = "MM";public final static String DATE_MM_PATTERN2 = "MM月";public final static String DATE_DD_PATTERN = "dd";public final static String DATE_DD_PATTERN2 = "dd日";public final static String TIME_HH_PATTERN = "HH";public final static String TIME_HH_PATTERN2 = "HH小时";public final static String TIME_hh_PATTERN = "hh小时";public final static String TIME_hh_PATTERN2 = "hh小时";public final static String TIME_MM_PATTERN = "mm";public final static String TIME_MM_PATTERN2 = "mm分钟";public final static String TIME_SS_PATTERN = "ss";public final static String TIME_SS_PATTERN2 = "ss秒";public final static String DATE_YYYY_MM_PATTERN = "yyyy-MM";public final static String DATE_YYYY_MM_PATTERN2 = "yyyy/MM";public final static String DATE_YYYY_MM_PATTERN3 = "yyyyMM";public final static String DATE_YYYY_MM_PATTERN4 = "yyyy.MM";public final static String DATE_YYYY_MM_PATTERN5 = "yyyy年MM月";public final static String DATE_MM_DD_PATTERN = "MM-dd";public final static String DATE_MM_DD_PATTERN2 = "MM/dd";public final static String DATE_MM_DD_PATTERN3 = "MMdd";public final static String DATE_MM_DD_PATTERN4 = "MM.dd";public final static String DATE_MM_DD_PATTERN5 = "MM月dd日";public final static String TIME_HH_MM_PATTERN = "HH:mm";public final static String TIME_hh_MM_PATTERN = "hh:mm";public final static String TIME_MM_SS_PATTERN = "mm:ss";public final static String TIME_HH_MM_SS_PATTERN = "HH:mm:ss";public final static String TIME_hh_MM_SS_PATTERN = "hh:mm:ss";public final static String DATE_PATTERN = "yyyy-MM-dd";public final static String DATE_PATTERN2 = "yyyy/MM/dd";public final static String DATE_PATTERN3 = "yyyyMMdd";public final static String DATE_PATTERN4 = "yyyy.MM.dd";public final static String DATE_PATTERN5 = "yyyy年MM月dd日";public final static String DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss";public final static String DATE_TIME_PATTERN2 = "yyyyMMddHHmmss";public final static String DATE_TIME_PATTERN3 = "yyyy/MM/dd HH:mm:ss";public final static String DATE_TIME_PATTERN4 = "yyyy.MM.dd HH:mm:ss";public final static String DATE_TIME_PATTERN5 = "yyyy年MM月dd日 HH:mm:ss";public final static String DATE_TIME_PATTERN6 = "yyyy年MM月dd日 HH时mm分ss秒";public final static String DATE_TIME_PATTERN7 = "yyyy年MM月dd日 HH小时mm分钟ss秒";public final static String DATE_TIME_PATTERN8 = "yyyy年MM月dd日HH小时mm分钟ss秒";public final static String DATE_TIME_h_PATTERN = "yyyy-MM-dd hh:mm:ss";public final static String DATE_TIME_h_PATTERN2 = "yyyyMMddhhmmss";public final static String DATE_TIME_h_PATTERN3 = "yyyy/MM/dd hh:mm:ss";public final static String DATE_TIME_h_PATTERN4 = "yyyy.MM.dd hh:mm:ss";public final static String DATE_TIME_h_PATTERN5 = "yyyy年MM月dd日 hh:mm:ss";public final static String DATE_TIME_h_PATTERN6 = "yyyy年MM月dd日 hh时mm分ss秒";public final static String DATE_TIME_h_PATTERN7 = "yyyy年MM月dd日 hh小时mm分钟ss秒";public final static String DATE_TIME_h_PATTERN8 = "yyyy年MM月dd日hh小时mm分钟ss秒";public final static String DATE_TIME_SSS_PATTERN = "yyyy-MM-dd HH:mm:ss.SSS";public final static String DATE_TIME_SSS_PATTERN2 = "yyyyMMddHHmmssSSS";public final static String DATE_TIME_SSS_PATTERN3 = "yyyy/MM/dd HH:mm:ss.SSS";public final static String DATE_TIME_SSS_PATTERN4 = "yyyy.MM.dd HH:mm:ss.SSS";public final static String DATE_TIME_SSS_PATTERN5 = "yyyy年MM月dd日 HH:mm:ss.SSS";public final static String DATE_TIME_h_SSS_PATTERN = "yyyy-MM-dd hh:mm:ss.SSS";public final static String DATE_TIME_h_SSS_PATTERN2 = "yyyyMMddhhmmssSSS";public final static String DATE_TIME_h_SSS_PATTERN3 = "yyyy/MM/dd hh:mm:ss.SSS";public final static String DATE_TIME_h_SSS_PATTERN4 = "yyyy.MM.dd hh:mm:ss.SSS";public final static String DATE_TIME_h_SSS_PATTERN5 = "yyyy年MM月dd日 hh:mm:ss.SSS";public static String[] WEEK_ARRAY = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};public static String[] WEEK_ARRAY_CN = {"星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"};public static String[] WEEK_ARRAY_CN_TOW = {"", "周一", "周二", "周三", "周四", "周五", "周六", "周日"};// ===========================****************Date转String方法****************===========================/*** Date转 格式:DATE_YYYY_PATTERN = "yyyy";** @param date 日期* @return 格式化后的日期字符串*/public static String formatDateYYYY(Date date) {return format(date, DATE_YYYY_PATTERN);}/*** Date转 格式:DATE_YYYY_PATTERN2 = "yyyy年";** @param date 日期* @return 格式化后的日期字符串*/public static String formatDateYYYY2(Date date) {return format(date, DATE_YYYY_PATTERN2);}/*** Date转 格式:DATE_MM_PATTERN = "MM";** @param date 日期* @return 格式化后的日期字符串*/public static String formatDateMM(Date date) {return format(date, DATE_MM_PATTERN);}/*** Date转 格式:DATE_MM_PATTERN2 = "MM月";** @param date 日期* @return 格式化后的日期字符串*/public static String formatDateMM2(Date date) {return format(date, DATE_MM_PATTERN2);}/*** Date转 格式:DATE_DD_PATTERN = "dd";** @param date 日期* @return 格式化后的日期字符串*/public static String formatDateDD(Date date) {return format(date, DATE_DD_PATTERN);}/*** Date转 格式:DATE_DD_PATTERN2 = "dd日";** @param date 日期* @return 格式化后的日期字符串*/public static String formatDateDD2(Date date) {return format(date, DATE_DD_PATTERN2);}/*** Date转 格式:DATE_YYYY_MM_PATTERN = "yyyy-MM";** @param date 日期* @return 格式化后的日期字符串*/public static String formatDateYYYYMM(Date date) {return format(date, DATE_YYYY_MM_PATTERN);}/*** Date转 格式:DATE_YYYY_MM_PATTERN2 = "yyyy/MM";** @param date 日期* @return 格式化后的日期字符串*/public static String formatDateYYYYMM2(Date date) {return format(date, DATE_YYYY_MM_PATTERN2);}/*** Date转 格式:DATE_YYYY_MM_PATTERN3 = "yyyyMM";** @param date 日期* @return 格式化后的日期字符串*/public static String formatDateYYYYMM3(Date date) {return format(date, DATE_YYYY_MM_PATTERN3);}/*** Date转 格式:DATE_YYYY_MM_PATTERN4 = "yyyy.MM";** @param date 日期* @return 格式化后的日期字符串*/public static String formatDateYYYYMM4(Date date) {return format(date, DATE_YYYY_MM_PATTERN4);}/*** Date转 格式: DATE_YYYY_MM_PATTERN5 = "yyyy年MM";** @param date 日期* @return 格式化后的日期字符串*/public static String formatDateYYYYMM5(Date date) {return format(date, DATE_YYYY_MM_PATTERN5);}/*** Date转 格式: DATE_MM_DD_PATTERN = "MM-dd";** @param date 日期* @return 格式化后的日期字符串*/public static String formatDateMMDD(Date date) {return format(date, DATE_MM_DD_PATTERN);}/*** Date转 格式: DATE_MM_DD_PATTERN2 = "MM/dd";** @param date 日期* @return 格式化后的日期字符串*/public static String formatDateMMDD2(Date date) {return format(date, DATE_MM_DD_PATTERN2);}/*** Date转 格式: DATE_MM_DD_PATTERN3 = "MMdd";** @param date 日期* @return 格式化后的日期字符串*/public static String formatDateMMDD3(Date date) {return format(date, DATE_MM_DD_PATTERN3);}/*** Date转 格式: DATE_MM_DD_PATTERN4 = "MM.dd";** @param date 日期* @return 格式化后的日期字符串*/public static String formatDateMMDD4(Date date) {return format(date, DATE_MM_DD_PATTERN4);}/*** Date转 格式: DATE_MM_DD_PATTERN5 = "MM年dd";** @param date 日期* @return 格式化后的日期字符串*/public static String formatDateMMDD5(Date date) {return format(date, DATE_MM_DD_PATTERN5);}/*** Date转 格式: DATE_PATTERN = "yyyy-MM-dd";** @param date 日期* @return 格式化后的日期字符串*/public static String formatDate(Date date) {return format(date, DATE_PATTERN);}/*** Date转 格式: DATE_PATTERN2 = "yyyy/MM/dd";** @param date 日期* @return 格式化后的日期字符串*/public static String formatDate2(Date date) {return format(date, DATE_PATTERN2);}/*** Date转 格式: DATE_PATTERN3 = "yyyyMMdd";** @param date 日期* @return 格式化后的日期字符串*/public static String formatDate3(Date date) {return format(date, DATE_PATTERN3);}/*** Date转 格式: DATE_PATTERN4 = "yyyy.MM.dd";** @param date 日期* @return 格式化后的日期字符串*/public static String formatDate4(Date date) {return format(date, DATE_PATTERN4);}/*** Date转 格式: DATE_PATTERN5 = "yyyy年MM月dd日";** @param date 日期* @return 格式化后的日期字符串*/public static String formatDate5(Date date) {return format(date, DATE_PATTERN5);}// ===========================****************String类型日期转Date方法****************===========================/*** String类型日期转Date方法** @param date 日期* @return Date日期对象*/public static Date parseDate(String date) {return parseDate(date, DATE_PATTERN);}/*** String类型日期转Date方法** @param date 日期* @param pattern 规则* @return Date日期对象*/public static Date parseDate(String date, String pattern) {if (StringUtils.isBlank(date)) {return null;}if (StringUtils.isBlank(pattern)) {pattern = DATE_PATTERN;}SimpleDateFormat sdf = new SimpleDateFormat(pattern);try {return sdf.parse(date);} catch (ParseException e) {return null;}}// ===========================****************DateTime转String方法****************===========================/*** Date转 格式: TIME_HH_PATTERN = "HH";** @param date 日期 (24小时制)* @return 格式化后的日期字符串*/public static String formatTimeHH(Date date) {return format(date, TIME_HH_PATTERN);}/*** Date转 格式: TIME_hh_PATTERN = "hh";** @param date 日期 (12小时制)* @return 格式化后的日期字符串*/public static String formatTimeHh(Date date) {return format(date, TIME_hh_PATTERN);}/*** Date转 格式:TIME_HH_PATTERN2 = "HH小时";** @param date 日期* @return 格式化后的日期字符串*/public static String formatTimeHH2(Date date) {return format(date, TIME_HH_PATTERN2);}/*** Date转 格式: TIME_hh_PATTERN2 = "hh小时";** @param date 日期 (12小时制)* @return 格式化后的日期字符串*/public static String formatTimeHh2(Date date) {return format(date, TIME_hh_PATTERN2);}/*** Date转 格式:TIME_MM_PATTERN = "mm";** @param date 日期* @return 格式化后的日期字符串*/public static String formatTimeMM(Date date) {return format(date, TIME_MM_PATTERN);}/*** Date转 格式:TIME_MM_PATTERN2 = "mm分钟";** @param date 日期* @return 格式化后的日期字符串*/public static String formatTimeMM2(Date date) {return format(date, TIME_MM_PATTERN2);}/*** Date转 格式:TIME_SS_PATTERN = "ss";** @param date 日期* @return 格式化后的日期字符串*/public static String formatTimeSS(Date date) {return format(date, TIME_SS_PATTERN);}/*** Date转 格式:TIME_SS_PATTERN2 = "ss秒";** @param date 日期* @return 格式化后的日期字符串*/public static String formatTimeSS2(Date date) {return format(date, TIME_SS_PATTERN2);}/*** Date转 格式:TIME_HH_MM_PATTERN = "HH:mm";** @param date 日期 (24小时制)* @return 格式化后的日期字符串*/public static String formatTimeHHMM(Date date) {return format(date, TIME_HH_MM_PATTERN);}/*** Date转 格式:TIME_hh_MM_PATTERN = "hh:mm";** @param date 日期 (12小时制)* @return 格式化后的日期字符串*/public static String formatTimeHhMM(Date date) {return format(date, TIME_hh_MM_PATTERN);}/*** Date转 格式:TIME_MM_SS_PATTERN = "mm:ss";** @param date 日期* @return 格式化后的日期字符串*/public static String formatTimeMMSS(Date date) {return format(date, TIME_MM_SS_PATTERN);}/*** Date转 格式:TIME_HH_MM_SS_PATTERN = "HH:mm:ss";** @param date 日期 (24小时制)* @return 格式化后的日期字符串*/public static String formatTimeHHMMSS(Date date) {return format(date, TIME_HH_MM_SS_PATTERN);}/*** Date转 格式:TIME_hh_MM_SS_PATTERN = "hh:mm:ss";** @param date 日期 (12小时制)* @return 格式化后的日期字符串*/public static String formatTimeHhMMSS(Date date) {return format(date, TIME_hh_MM_SS_PATTERN);}/*** Date转 格式:DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss";** @param date 日期* @return 格式化后的日期字符串*/public static String formatDateTime(Date date) {return format(date, DATE_TIME_PATTERN);}/*** Date转 格式:DATE_TIME_PATTERN2 = "yyyyMMddHHmmss";** @param date 日期* @return 格式化后的日期字符串*/public static String formatDateTime2(Date date) {return format(date, DATE_TIME_PATTERN2);}/*** Date转 格式:DATE_TIME_PATTERN3 = "yyyy/MM/dd HH:mm:ss";** @param date 日期* @return 格式化后的日期字符串*/public static String formatDateTime3(Date date) {return format(date, DATE_TIME_PATTERN3);}/*** Date转 格式:DATE_TIME_PATTERN4 = "yyyy.MM.dd HH:mm:ss";** @param date 日期* @return 格式化后的日期字符串*/public static String formatDateTime4(Date date) {return format(date, DATE_TIME_PATTERN4);}/*** Date转 格式:DATE_TIME_PATTERN5 = "yyyy年MM月dd日 HH:mm:ss";** @param date 日期* @return 格式化后的日期字符串*/public static String formatDateTime5(Date date) {return format(date, DATE_TIME_PATTERN5);}/*** Date转 格式:DATE_TIME_PATTERN6 = "yyyy年MM月dd日 HH时mm分ss秒";** @param date 日期* @return 格式化后的日期字符串*/public static String formatDateTime6(Date date) {return format(date, DATE_TIME_PATTERN6);}/*** Date转 格式:DATE_TIME_PATTERN7 = "yyyy年MM月dd日 HH小时mm分钟ss秒";** @param date 日期* @return 格式化后的日期字符串*/public static String formatDateTime7(Date date) {return format(date, DATE_TIME_PATTERN7);}/*** Date转 格式:DATE_TIME_PATTERN8 = "yyyy年MM月dd日HH小时mm分钟ss秒";** @param date 日期* @return 格式化后的日期字符串*/public static String formatDateTime8(Date date) {return format(date, DATE_TIME_PATTERN8);}/*** Date转 格式:DATE_TIME_h_PATTERN = "yyyy-MM-dd hh:mm:ss";** @param date 日期 (12小时制)* @return 格式化后的日期字符串*/public static String formatDateTimeH(Date date) {return format(date, DATE_TIME_h_PATTERN);}/*** Date转 格式:DATE_TIME_h_PATTERN2 = "yyyyMMddhhmmss";** @param date 日期 (12小时制)* @return 格式化后的日期字符串*/public static String formatDateTimeH2(Date date) {return format(date, DATE_TIME_h_PATTERN2);}/*** Date转 格式:DATE_TIME_h_PATTERN3 = "yyyy/MM/dd hh:mm:ss";** @param date 日期 (12小时制)* @return 格式化后的日期字符串*/public static String formatDateTimeH3(Date date) {return format(date, DATE_TIME_h_PATTERN3);}/*** Date转 格式:DATE_TIME_h_PATTERN4 = "yyyy.MM.dd hh:mm:ss";** @param date 日期 (12小时制)* @return 格式化后的日期字符串*/public static String formatDateTimeH4(Date date) {return format(date, DATE_TIME_h_PATTERN4);}/*** Date转 格式:DATE_TIME_h_PATTERN5 = "yyyy年MM月dd日 hh:mm:ss";** @param date 日期 (12小时制)* @return 格式化后的日期字符串*/public static String formatDateTimeH5(Date date) {return format(date, DATE_TIME_h_PATTERN5);}/*** Date转 格式:DATE_TIME_h_PATTERN6 = "yyyy年MM月dd日 hh时mm分ss秒";** @param date 日期 (12小时制)* @return 格式化后的日期字符串*/public static String formatDateTimeH6(Date date) {return format(date, DATE_TIME_h_PATTERN6);}/*** Date转 格式:DATE_TIME_h_PATTERN7 = "yyyy年MM月dd日 hh小时mm分钟ss秒";** @param date 日期 (12小时制)* @return 格式化后的日期字符串*/public static String formatDateTimeH7(Date date) {return format(date, DATE_TIME_h_PATTERN7);}/*** Date转 格式:DATE_TIME_h_PATTERN8 = "yyyy年MM月dd日hh小时mm分钟ss秒";** @param date 日期 (12小时制)* @return 格式化后的日期字符串*/public static String formatDateTimeH8(Date date) {return format(date, DATE_TIME_h_PATTERN8);}/*** Date转 格式:DATE_TIME_SSS_PATTERN = "yyyy-MM-dd HH:mm:ss.SSS";** @param date 日期* @return 格式化后的日期字符串*/public static String formatDateTimeSSS(Date date) {return format(date, DATE_TIME_SSS_PATTERN);}/*** Date转 格式:DATE_TIME_SSS_PATTERN2 = "yyyyMMddHHmmssSSS";** @param date 日期* @return 格式化后的日期字符串*/public static String formatDateTimeSSS2(Date date) {return format(date, DATE_TIME_SSS_PATTERN2);}/*** Date转 格式:DATE_TIME_SSS_PATTERN3 = "yyyy/MM/dd HH:mm:ss.SSS";** @param date 日期* @return 格式化后的日期字符串*/public static String formatDateTimeSSS3(Date date) {return format(date, DATE_TIME_SSS_PATTERN3);}/*** Date转 格式:DATE_TIME_SSS_PATTERN4 = "yyyy.MM.dd HH:mm:ss.SSS";** @param date 日期* @return 格式化后的日期字符串*/public static String formatDateTimeSSS4(Date date) {return format(date, DATE_TIME_SSS_PATTERN4);}/*** Date转 格式:DATE_TIME_SSS_PATTERN5 = "yyyy年MM月dd日 HH:mm:ss.SSS";** @param date 日期* @return 格式化后的日期字符串*/public static String formatDateTimeSSS5(Date date) {return format(date, DATE_TIME_SSS_PATTERN5);}/*** Date转 格式:DATE_TIME_h_SSS_PATTERN = "yyyy-MM-dd hh:mm:ss.SSS";** @param date 日期 (12小时制)* @return 格式化后的日期字符串*/public static String formatDateTimeHSSS(Date date) {return format(date, DATE_TIME_h_SSS_PATTERN);}/*** Date转 格式:DATE_TIME_h_SSS_PATTERN2 = "yyyyMMddhhmmssSSS";** @param date 日期 (12小时制)* @return 格式化后的日期字符串*/public static String formatDateTimeHSSS2(Date date) {return format(date, DATE_TIME_h_SSS_PATTERN2);}/*** Date转 格式:DATE_TIME_h_SSS_PATTERN3 = "yyyy/MM/dd hh:mm:ss.SSS";** @param date 日期 (12小时制)* @return 格式化后的日期字符串*/public static String formatDateTimeHSSS3(Date date) {return format(date, DATE_TIME_h_SSS_PATTERN3);}/*** Date转 格式:DATE_TIME_h_SSS_PATTERN4 = "yyyy.MM.dd hh:mm:ss.SSS";** @param date 日期 (12小时制)* @return 格式化后的日期字符串*/public static String formatDateTimeHSSS4(Date date) {return format(date, DATE_TIME_h_SSS_PATTERN4);}/*** Date转 格式:DATE_TIME_h_SSS_PATTERN5 = "yyyy年MM月dd日 hh:mm:ss.SSS";** @param date 日期 (12小时制)* @return 格式化后的日期字符串*/public static String formatDateTimeHSSS5(Date date) {return format(date, DATE_TIME_h_SSS_PATTERN5);}/*** Date转字符串公共格式化方法** @param date 日期* @param pattern 格式,格式化默认为yyyy-MM-dd* @return 格式化后的日期字符串*/public static String format(Date date, String pattern) {try {if (date != null) {if (StringUtils.isBlank(pattern)) {pattern = DATE_PATTERN;}SimpleDateFormat df = new SimpleDateFormat(pattern);return df.format(date);}} catch (Exception e) {return null;}return null;}// ===========================****************Date获取时间戳方法****************===========================/*** 获取当前时间的时间戳** @return 当前时间的时间戳*/public static long getNowTimestamp() {Date now = new Date();return getDateTimestamp(now);}/*** 获取指定时间的时间戳** @param date 指定时间* @return 时间戳*/public static long getDateTimestamp(Date date) {if (date == null) {return 0;}return date.getTime();}// ===========================****************String类型日期获取时间戳方法****************===========================/*** 获取指定时间的时间戳** @param date 指定时间* 格式为 yyyy-MM-dd* @return 时间戳*/public static long getDateTimestampByYYYYMMDD(String date) {if (StringUtils.isBlank(date)) {return 0;}return getDateTimestamp(parseDate(date));}/*** 获取指定时间的时间戳** @param date 指定时间* 格式为 yyyy-MM-dd* @return 时间戳*/public static long getDateTimestampByYYYYMMDDHHMMSS(String date) {if (StringUtils.isBlank(date)) {return 0;}return getDateTimestamp(parseDate(date, DATE_TIME_PATTERN));}// =============******Date日期对【秒】【分钟】【小时】【天】【周】【月】【年】进行加(+)/减(-)方法*********==============/*** 对日期的【秒】进行加/减** @param date 日期* @param seconds 秒数,负数为减* @return 加/减几秒后的日期*/public static Date addDateSeconds(Date date, int seconds) {return getDateTime(date) != null ? getDateTime(date).plusSeconds(seconds).toDate() : null;}/*** 对日期的【分钟】进行加/减** @param date 日期* @param minutes 分钟数,负数为减* @return 加/减几分钟后的日期*/public static Date addDateMinutes(Date date, int minutes) {return getDateTime(date) != null ? getDateTime(date).plusMinutes(minutes).toDate() : null;}/*** 对日期的【小时】进行加/减** @param date 日期* @param hours 小时数,负数为减* @return 加/减几小时后的日期*/public static Date addDateHours(Date date, int hours) {return getDateTime(date) != null ? getDateTime(date).plusHours(hours).toDate() : null;}/*** 对日期的【天】进行加/减** @param date 日期* @param days 天数,负数为减* @return 加/减几天后的日期*/public static Date addDateDays(Date date, int days) {return getDateTime(date) != null ? getDateTime(date).plusDays(days).toDate() : null;}/*** 对日期的【周】进行加/减** @param date 日期* @param weeks 周数,负数为减* @return 加/减几周后的日期*/public static Date addDateWeeks(Date date, int weeks) {return getDateTime(date) != null ? getDateTime(date).plusWeeks(weeks).toDate() : null;}/*** 对日期的【月】进行加/减** @param date 日期* @param months 月数,负数为减* @return 加/减几月后的日期*/public static Date addDateMonths(Date date, int months) {return getDateTime(date) != null ? getDateTime(date).plusMonths(months).toDate() : null;}/*** 对日期的【年】进行加/减** @param date 日期* @param years 年数,负数为减* @return 加/减几年后的日期*/public static Date addDateYears(Date date, int years) {return getDateTime(date) != null ? getDateTime(date).plusYears(years).toDate() : null;}/*** 获取日期时间对象** @param date 日期* @return 日期时间对象*/public static DateTime getDateTime(Date date) {if (date == null) {return null;}return new DateTime(date);}// =============******Date日期比较方法*********==============/*** 比较两个时间是否相等,只比较年** @param date1 时间1* @param date2 时间2* @return 是否相等*/public static boolean compareEqualDateYYYY(Date date1, Date date2) {if (date1 == null || date2 == null) {return false;}Calendar cal1 = Calendar.getInstance();Calendar cal2 = Calendar.getInstance();cal1.setTime(date1);cal2.setTime(date2);// 清除时、分、秒和毫秒cal1.set(Calendar.HOUR_OF_DAY, 0);cal1.set(Calendar.MINUTE, 0);cal1.set(Calendar.SECOND, 0);cal1.set(Calendar.MILLISECOND, 0);cal2.set(Calendar.HOUR_OF_DAY, 0);cal2.set(Calendar.MINUTE, 0);cal2.set(Calendar.SECOND, 0);cal2.set(Calendar.MILLISECOND, 0);// 现在只比较年return cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR);}/*** 比较两个时间是否相等,只比较年* (Java8+)** @param date1 时间1* @param date2 时间2* @return 是否相等*/public static boolean compareEqualDateYYYYJava8(Date date1, Date date2) {if (date1 == null || date2 == null) {return false;}LocalDate ld1 = ZonedDateTime.ofInstant(date1.toInstant(), ZoneId.systemDefault()).toLocalDate();LocalDate ld2 = ZonedDateTime.ofInstant(date2.toInstant(), ZoneId.systemDefault()).toLocalDate();// 现在只比较年return ld1.getYear() == ld2.getYear();}/*** 比较两个时间是否相等,只比较年月** @param date1 时间1* @param date2 时间2* @return 是否相等*/public static boolean compareEqualDateYYYYMM(Date date1, Date date2) {if (date1 == null || date2 == null) {return false;}Calendar cal1 = Calendar.getInstance();Calendar cal2 = Calendar.getInstance();cal1.setTime(date1);cal2.setTime(date2);// 清除时、分、秒和毫秒cal1.set(Calendar.HOUR_OF_DAY, 0);cal1.set(Calendar.MINUTE, 0);cal1.set(Calendar.SECOND, 0);cal1.set(Calendar.MILLISECOND, 0);cal2.set(Calendar.HOUR_OF_DAY, 0);cal2.set(Calendar.MINUTE, 0);cal2.set(Calendar.SECOND, 0);cal2.set(Calendar.MILLISECOND, 0);// 现在只比较年和月return cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) &&cal1.get(Calendar.MONTH) == cal2.get(Calendar.MONTH);}/*** 比较两个时间是否相等,只比较年月* (Java8+)** @param date1 时间1* @param date2 时间2* @return 是否相等*/public static boolean compareEqualDateYYYYMMJava8(Date date1, Date date2) {if (date1 == null || date2 == null) {return false;}LocalDate ld1 = ZonedDateTime.ofInstant(date1.toInstant(), ZoneId.systemDefault()).toLocalDate();LocalDate ld2 = ZonedDateTime.ofInstant(date2.toInstant(), ZoneId.systemDefault()).toLocalDate();// 现在只比较年和月return ld1.getYear() == ld2.getYear() &&ld1.getMonthValue() == ld2.getMonthValue();}/*** 比较两个时间是否相等,只比较年月日** @param date1 时间1* @param date2 时间2* @return 是否相等*/public static boolean compareEqualDateYYYYMMDD(Date date1, Date date2) {if (date1 == null || date2 == null) {return false;}Calendar cal1 = Calendar.getInstance();Calendar cal2 = Calendar.getInstance();cal1.setTime(date1);cal2.setTime(date2);// 清除时、分、秒和毫秒cal1.set(Calendar.HOUR_OF_DAY, 0);cal1.set(Calendar.MINUTE, 0);cal1.set(Calendar.SECOND, 0);cal1.set(Calendar.MILLISECOND, 0);cal2.set(Calendar.HOUR_OF_DAY, 0);cal2.set(Calendar.MINUTE, 0);cal2.set(Calendar.SECOND, 0);cal2.set(Calendar.MILLISECOND, 0);// 现在只比较年和月和日return cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) &&cal1.get(Calendar.MONTH) == cal2.get(Calendar.MONTH) &&cal1.get(Calendar.DAY_OF_MONTH) == cal2.get(Calendar.DAY_OF_MONTH);}/*** 比较两个时间是否相等,只比较年月日* (Java8+)** @param date1 时间1* @param date2 时间2* @return 是否相等*/public static boolean compareEqualDateYYYYMMDDJava8(Date date1, Date date2) {if (date1 == null || date2 == null) {return false;}LocalDate ld1 = ZonedDateTime.ofInstant(date1.toInstant(), ZoneId.systemDefault()).toLocalDate();LocalDate ld2 = ZonedDateTime.ofInstant(date2.toInstant(), ZoneId.systemDefault()).toLocalDate();// 现在只比较年和月和日return ld1.getYear() == ld2.getYear() &&ld1.getMonthValue() == ld2.getMonthValue() &&ld1.getDayOfMonth() == ld2.getDayOfMonth();}/*** 比较两个时间是否相等,只比较年月日时分秒** @param date1 时间1* @param date2 时间2* @return 是否相等*/public static boolean compareEqualDateYYYYMMDDHHMMSS(Date date1, Date date2) {if (date1 == null || date2 == null) {return false;}Calendar cal1 = Calendar.getInstance();Calendar cal2 = Calendar.getInstance();cal1.setTime(date1);cal2.setTime(date2);// 清除毫秒cal1.set(Calendar.MILLISECOND, 0);cal2.set(Calendar.MILLISECOND, 0);// 现在只比较年和月和日、时分秒return cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) &&cal1.get(Calendar.MONTH) == cal2.get(Calendar.MONTH) &&cal1.get(Calendar.DAY_OF_MONTH) == cal2.get(Calendar.DAY_OF_MONTH) &&cal1.get(Calendar.HOUR_OF_DAY) == cal2.get(Calendar.HOUR_OF_DAY) &&cal1.get(Calendar.MINUTE) == cal2.get(Calendar.MINUTE) &&cal1.get(Calendar.SECOND) == cal2.get(Calendar.SECOND);}/*** 比较两个时间是否相等,只比较年月日时分秒* (Java8+)** @param date1 时间1* @param date2 时间2* @return 是否相等*/public static boolean compareEqualDateYYYYMMDDHHMMSSJava8(Date date1, Date date2) {if (date1 == null || date2 == null) {return false;}LocalDateTime ld1 = ZonedDateTime.ofInstant(date1.toInstant(), ZoneId.systemDefault()).toLocalDateTime();LocalDateTime ld2 = ZonedDateTime.ofInstant(date2.toInstant(), ZoneId.systemDefault()).toLocalDateTime();// 现在只比较年和月和日、时分秒return ld1.getYear() == ld2.getYear() &&ld1.getMonthValue() == ld2.getMonthValue() &&ld1.getDayOfMonth() == ld2.getDayOfMonth() &&ld1.getHour() == ld2.getHour() &&ld1.getMinute() == ld2.getMinute() &&ld1.getSecond() == ld2.getSecond();}/*** 比较两个时间大小,只比较年* 注意:时间参数不可为空** @param date1 时间1* @param date2 时间2* @return >0 : 时间1 大于(>) 时间2* <0 : 时间1 小于(<) 时间2* =0 : 时间1 等于(=) 时间2*/public static int compareDateYYYY(Date date1, Date date2) {Calendar cal1 = Calendar.getInstance();Calendar cal2 = Calendar.getInstance();cal1.setTime(date1);cal2.setTime(date2);// 提取年份和月份int year1 = cal1.get(Calendar.YEAR);int year2 = cal2.get(Calendar.YEAR);// 首先比较年份,如果年份不同,则直接返回结果if (year1 != year2) {return Integer.compare(year1, year2);}return 0;}/*** 比较两个时间大小,只比较年* 注意:时间参数不可为空** @param date1 时间1* @param date2 时间2* @return >0 : 时间1 大于(>) 时间2* <0 : 时间1 小于(<) 时间2* =0 : 时间1 等于(=) 时间2*/public static int compareDateYYYYJava8(Date date1, Date date2) {LocalDate ld1 = ZonedDateTime.ofInstant(date1.toInstant(), ZoneId.systemDefault()).toLocalDate();LocalDate ld2 = ZonedDateTime.ofInstant(date2.toInstant(), ZoneId.systemDefault()).toLocalDate();return Integer.compare(ld1.getYear(), ld2.getYear());}/*** 比较两个时间大小,只比较年月* 注意:时间参数不可为空** @param date1 时间1* @param date2 时间2* @return >0 : 时间1 大于(>) 时间2* <0 : 时间1 小于(<) 时间2* =0 : 时间1 等于(=) 时间2*/public static int compareDateYYYYMM(Date date1, Date date2) {Calendar cal1 = Calendar.getInstance();Calendar cal2 = Calendar.getInstance();cal1.setTime(date1);cal2.setTime(date2);// 提取年份和月份int year1 = cal1.get(Calendar.YEAR);int month1 = cal1.get(Calendar.MONTH); // 注意:Calendar中的月份是从0开始的int year2 = cal2.get(Calendar.YEAR);int month2 = cal2.get(Calendar.MONTH);// 首先比较年份,如果年份不同,则直接返回结果if (year1 != year2) {return Integer.compare(year1, year2);}// 如果年份相同,则比较月份return Integer.compare(month1, month2);}/*** 比较两个时间大小,只比较年月* 注意:时间参数不可为空** @param date1 时间1* @param date2 时间2* @return >0 : 时间1 大于(>) 时间2* <0 : 时间1 小于(<) 时间2* =0 : 时间1 等于(=) 时间2*/public static int compareDateYYYYMMJava8(Date date1, Date date2) {LocalDate ld1 = ZonedDateTime.ofInstant(date1.toInstant(), ZoneId.systemDefault()).toLocalDate();LocalDate ld2 = ZonedDateTime.ofInstant(date2.toInstant(), ZoneId.systemDefault()).toLocalDate();// 如果年份相同,则比较月份return Integer.compare(ld1.getYear() * 100 + ld1.getMonthValue(),ld2.getYear() * 100 + ld2.getMonthValue());}/*** 比较两个时间大小,只比较年月日* 注意:时间参数不可为空** @param date1 时间1* @param date2 时间2* @return >0 : 时间1 大于(>) 时间2* <0 : 时间1 小于(<) 时间2* =0 : 时间1 等于(=) 时间2*/public static int compareDateYYYYMMDD(Date date1, Date date2) {Calendar cal1 = Calendar.getInstance();Calendar cal2 = Calendar.getInstance();cal1.setTime(date1);cal2.setTime(date2);// 提取年份和月份int year1 = cal1.get(Calendar.YEAR);int month1 = cal1.get(Calendar.MONTH); // 注意:Calendar中的月份是从0开始的int day1 = cal1.get(Calendar.DAY_OF_MONTH);int year2 = cal2.get(Calendar.YEAR);int month2 = cal2.get(Calendar.MONTH);int day2 = cal2.get(Calendar.DAY_OF_MONTH);// 首先比较年份,如果年份不同,则直接返回结果if (year1 != year2) {return Integer.compare(year1, year2);}if (month1 != month2) {// 如果年份相同,则比较月份return Integer.compare(month1, month2);}// 如果月份相同,则比较日期return Integer.compare(day1, day2);}/*** 比较两个时间大小,只比较年月日* 注意:时间参数不可为空** @param date1 时间1* @param date2 时间2* @return >0 : 时间1 大于(>) 时间2* <0 : 时间1 小于(<) 时间2* =0 : 时间1 等于(=) 时间2*/public static int compareDateYYYYMMDDJava8(Date date1, Date date2) {LocalDate ld1 = ZonedDateTime.ofInstant(date1.toInstant(), ZoneId.systemDefault()).toLocalDate();LocalDate ld2 = ZonedDateTime.ofInstant(date2.toInstant(), ZoneId.systemDefault()).toLocalDate();// 使用LocalDate的compareTo方法来比较年月日return ld1.compareTo(ld2);}/*** 比较两个时间大小,只比较年月日时分秒* 注意:时间参数不可为空** @param date1 时间1* @param date2 时间2* @return >0 : 时间1 大于(>) 时间2* <0 : 时间1 小于(<) 时间2* =0 : 时间1 等于(=) 时间2*/public static int compareDateYYYYMMDDHHMMSS(Date date1, Date date2) {Calendar cal1 = Calendar.getInstance();Calendar cal2 = Calendar.getInstance();cal1.setTime(date1);cal2.setTime(date2);// 清除毫秒部分(如果需要的话,实际上Calendar的比较默认就会忽略毫秒)// 但为了明确表明我们的意图,我们可以将毫秒设置为0cal1.set(Calendar.MILLISECOND, 0);cal2.set(Calendar.MILLISECOND, 0);// 比较两个Calendar对象if (cal1.equals(cal2)) {return 0;} else if (cal1.before(cal2)) {return -1;} else {return 1;}}/*** 比较两个时间大小,只比较年月日时分秒* 注意:时间参数不可为空** @param date1 时间1* @param date2 时间2* @return >0 : 时间1 大于(>) 时间2* <0 : 时间1 小于(<) 时间2* =0 : 时间1 等于(=) 时间2*/public static int compareDateYYYYMMDDHHMMSSJava8(Date date1, Date date2) {LocalDateTime ld1 = ZonedDateTime.ofInstant(date1.toInstant(), ZoneId.systemDefault()).toLocalDateTime();LocalDateTime ld2 = ZonedDateTime.ofInstant(date2.toInstant(), ZoneId.systemDefault()).toLocalDateTime();// 使用LocalDate的compareTo方法来比较年月日return ld1.compareTo(ld2);}/*** 检查两个时间之间的差异是否大于等于30分钟** @param date1 第一个时间* @param date2 第二个时间* @return 如果时间差大于等于30分钟,则返回true;否则返回false*/public static boolean isTimeDifferenceMoreThanOrEqual30Minutes(Date date1, Date date2) {long diffInMillis = Math.abs(date2.getTime() - date1.getTime()); // 计算时间差(毫秒)long diffInMinutes = diffInMillis / (1000 * 60); // 将毫秒转换为分钟return diffInMinutes >= 30;}/*** 检查两个时间之间的差异是否大于等于多少分钟** @param date1 第一个时间* @param date2 第二个时间* @param num 多少分钟,自定义* @return 如果时间差大于等于30分钟,则返回true;否则返回false*/public static boolean isTimeDifferenceMoreThanOrEqual30Minutes(Date date1, Date date2, Integer num) {long diffInMillis = Math.abs(date2.getTime() - date1.getTime()); // 计算时间差(毫秒)long diffInMinutes = diffInMillis / (1000 * 60); // 将毫秒转换为分钟return diffInMinutes >= 30;}// =============******Date日期获取方法*********==============/*** 根据年份获取所有月份* @param year 年份* @return 所有月份*/public static List<String> traverseMonthsOfYear(Integer year){if(year == null){return Lists.newArrayList();}// 遍历年份和月份Calendar calendar = Calendar.getInstance();calendar.set(year, Calendar.JANUARY, 1); // 设置为2024年1月1日List<String> months = Lists.newArrayList();while (calendar.get(Calendar.YEAR) == year) { // 假设只处理2024年的数据int month = calendar.get(Calendar.MONTH) + 1; // 月份是从0开始的,所以要加1months.add(String.valueOf(month));// 移动到下一个月calendar.add(Calendar.MONTH, 1);}return months;}/*** 根据年份+月份获取月份的所有周* @param year 年份* @param month 月份* @return 所有周*/public static List<String> traverseWeeksOfMonth(Integer year, Integer month) {if(year == null || month == null){return Lists.newArrayList();}Calendar calendar = Calendar.getInstance();calendar.set(year, month - 1, 1); // 设置日期为月份的第一天List<String> weeks = Lists.newArrayList();// 循环直到我们到达下一个月的第一天while (calendar.get(Calendar.MONTH) == month - 1) {int weekOfYear = calendar.get(Calendar.WEEK_OF_YEAR);weeks.add(String.valueOf(weekOfYear));// 移动到下一天calendar.add(Calendar.WEEK_OF_MONTH, 1);// 如果我们已经到达了下个月,则退出循环if (calendar.get(Calendar.WEEK_OF_MONTH) == 1 && calendar.get(Calendar.MONTH) != month - 1) {break;}}return weeks;}/*** 根据年份+月份获取月份的所有天* @param year 年份* @param month 月份* @return 所有天 (格式:日)*/public static List<String> traverseDaysOfMonth(Integer year, Integer month) {if(year == null || month == null){return Lists.newArrayList();}List<String> days = Lists.newArrayList();Calendar calendar = Calendar.getInstance();calendar.set(year, month - 1, 1); // 注意月份是从0开始的// 遍历当月的每一天while (calendar.get(Calendar.MONTH) == month - 1) {int day = calendar.get(Calendar.DAY_OF_MONTH);days.add(String.valueOf(day));// 移动到下一天calendar.add(Calendar.DAY_OF_MONTH, 1);}return days;}/*** 根据年份+月份获取月份的所有天* 跨年跨月* @return 所有天 (格式:月-日)*/public static List<String> traverseDaysOfMonth(Integer startYear, Integer startMonth, Integer startDay,Integer endYear, Integer endMonth, Integer endDay) {if(startYear == null || startMonth == null || startDay == null|| endYear == null || endMonth == null || endDay == null){return Lists.newArrayList();}List<String> days = Lists.newArrayList();Calendar startDate = Calendar.getInstance();startDate.set(startYear, startMonth - 1, startDay); // 注意月份是从0开始的,所以12月是Calendar.DECEMBERCalendar endDate = Calendar.getInstance();endDate.set(endYear, endMonth - 1, endDay);// 循环遍历并打印每一天while (!startDate.after(endDate)) {// 打印日期,使用SimpleDateFormat来格式化日期输出// 这里简单使用toString()展示,实际使用中可以根据需要格式化int year = startDate.get(Calendar.YEAR);int month = startDate.get(Calendar.MONTH);int day = startDate.get(Calendar.DAY_OF_MONTH);days.add(((month + 1) < 10 ? "0" + (month + 1) : (month + 1))+ "-"+ (day < 10 ? "0" + day : day));// 将startDate向前推进一天startDate.add(Calendar.DAY_OF_MONTH, 1);}return days;}/*** 根据年份+月份获取指定天的所有小时* @param year 年份* @param month 月份* @return 所有小时*/public static List<String> traverseHoursOfDay(Integer year, Integer month, Integer day){if(year == null || month == null || day == null){return Lists.newArrayList();}List<String> hours = Lists.newArrayList();// 设置Calendar实例为某一天(例如,2023年1月1日)Calendar calendar = Calendar.getInstance();calendar.set(year, month - 1, day); // 注意月份是从0开始的// 获取当前时间Calendar curCalendar = Calendar.getInstance();// 获取当前时间的日期int curDayOfMonth = curCalendar.get(Calendar.DAY_OF_MONTH);// 获取当前时间的小时(24小时制)int curHour = curCalendar.get(Calendar.HOUR_OF_DAY);// 遍历当天的每一个小时for (int hour = 0; hour < 24; hour++) {// 设置小时calendar.set(Calendar.HOUR_OF_DAY, hour);// 获取并打印当前时间(这里只打印日期和小时,分钟和秒设为0)// 注意:如果你想要包含分钟和秒,可以保持它们为当前值或显式设置为0calendar.set(Calendar.MINUTE, 0);calendar.set(Calendar.SECOND, 0);calendar.set(Calendar.MILLISECOND, 0);int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);int hourOfDay = calendar.get(Calendar.HOUR_OF_DAY);hours.add((hourOfDay < 10 ? "0" + hourOfDay : String.valueOf(hourOfDay)) + ":00");if(dayOfMonth == curDayOfMonth && hourOfDay == curHour){break;}}return hours;}}
作者:筱白爱学习!!
欢迎关注转发评论点赞沟通,您的支持是筱白的动力!
相关文章:
Date工具类详细汇总-Date日期相关方法
# 1024程序员节 | 征文 # 目录 简介 Date工具类单元测试 Date工具类 简介 本文章是个人总结实际工作中常用到的Date工具类,主要包含Java-jdk8以下版本的Date相关使用方法,可以方便的在工作中灵活的应用,在个人工作期间频繁使用这些时间的格…...
TMUX1308PWR规格书 数据手册 具有注入电流控制功能的 5V 双向 8:1单通道和 4:1 双通道多路复用器芯片
TMUX1308 和 TMUX1309 为通用互补金属氧化物半导体 (CMOS) 多路复用器 (MUX)。TMUX1308 是 8:1单通道(单端)多路复用器,而 TMUX1309 是 4:1 双通道(差分)多路复用器。这些器件可在源极 (Sx) 和漏极 (Dx) 引脚上支持从 …...
证件照怎么换底色?简单又快速!不看后悔
一、引言 证件照在我们的生活中有着广泛的应用,无论是求职、考试还是办理各种证件,都需要用到不同底色的证件照。传统的换底色方法往往比较复杂,需要一定的专业技能和软件操作经验。但是现在,有了更简单快捷的方法,让你…...
Rust 基础语法与常用特性
Rust 跨界:全面掌握跨平台应用开发 第一章:快速上手 Rust 1.2 基础语法与常用特性 1.2.1 数据类型与控制流 数据类型 Rust 提供了丰富的内置数据类型,主要分为标量类型和复合类型。 标量类型 标量类型表示单一的值,Rust 中…...
一、开发环境的搭建
环境搭建步骤: 下载软件安装软件运行软件 其他: Visual studio 安装包文件:https://www.alipan.com/s/nd5RgzD4e3b 下载软件 在浏览器中搜索Visual studio,选择如图的选项 点击该区域,进入该页面,【或…...
Docker:存储原理
Docker:存储原理 镜像联合文件系统overlay镜像存储结构容器存储结构 存储卷绑定挂载存储卷结构 镜像 联合文件系统 联合文件系统Union File System是一种分层,轻量且高效的文件系统。其将整个文件系统分为多个层,层与层之间进行覆盖&#x…...
ts:数组的常用方法(push、pop、shift、unshift、splice、slice)
前端css中filter的使用 一、主要内容说明二、例子(一)、push方法(尾添加)1.源码1 (push方法)2.源码1运行效果 (二)、pop方法(尾删除)1.源码2(pop方…...
物联网网关确保设备安全
物联网(IoT)网关在确保设备安全方面扮演着至关重要的角色。 作为连接物联网设备和云端或企业系统的中介,物联网网关可以实施多种安全措施来保护设备和数据。 是物联网网关确保设备安全的关键方法: 1. 设备认证和授权 认证&…...
Vue学习笔记(五)
Class绑定 数据绑定的一个常见需求场景式操纵元素的CSS class列表,因为class是attribute,我们可以和其他attribute一样使用v-bind将它们和动态的字符串绑定。但是,在处理比较复杂的绑定时,通过拼接生成字符串是麻烦且易出错的。因此…...
Nestjs返回格式小结
在 NestJS 中,除了 text/event-stream(用于 Server-Sent Events)之外,还有多种格式的返回方式,具体取决于你的应用需求。以下是一些常见的返回格式及其示例: 1. JSON 格式 Get(json) getJsonResponse(Res…...
【力扣刷题实战】相同的树
大家好,我是小卡皮巴拉 文章目录 目录 力扣题目: 相同的树 题目描述 示例 1: 示例 2: 示例 3: 解题思路 题目理解 算法选择 具体思路 解题要点 完整代码(C语言) 兄弟们共勉 &#…...
Golang | Leetcode Golang题解之第515题在每个树行中找最大值
题目: 题解: func largestValues(root *TreeNode) (ans []int) {if root nil {return}q : []*TreeNode{root}for len(q) > 0 {maxVal : math.MinInt32tmp : qq nilfor _, node : range tmp {maxVal max(maxVal, node.Val)if node.Left ! nil {q …...
Zookeeper 对于 Kafka 的作用是什么?
大家好,我是锋哥。今天分享关于【Zookeeper 对于 Kafka 的作用是什么?】面试题?希望对大家有帮助; Zookeeper 对于 Kafka 的作用是什么? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 ZooKeeper 在 Kafka…...
Thread类及线程的核心操作
一. Thread类的常见构造方法 1. Thread() Thread类无参的构造方法, 用于创建Thread类的实例对象. 2. Thread(String name) 带一个参数的Thread类构造方法, 创建一个线程对象, 并给其命名. [注]: 如果不专门给线程命名, 那么线程默认的名字就是Thread-0, Thread-1, Thread-…...
算法|牛客网华为机试11-20C++
牛客网华为机试 上篇:算法|牛客网华为机试1-10C 文章目录 HJ11 数字颠倒HJ12 字符串反转HJ13 句子逆序HJ14 字符串排序HJ15 求int型正整数在内存中存储时1的个数HJ16 购物单HJ17 坐标移动HJ18 识别有效的IP地址和掩码并进行分类统计HJ19 简单错误记录HJ20 密码验证…...
OpenAI低调发布多智能体工具Swarm:让多个智能体协同工作!
大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,专注于分享AI全维度知识,包括但不限于AI科普,AI工…...
性能之光 年度电竞性能旗舰iQOO 13发布
2024年10月30日,被定义为“性能之光”的年度电竞性能旗舰——iQOO 13正式发布,售价3999元起。iQOO 13作为iQOO 品牌在性能上的又一次深入探索,它像是一束光,引领行业不断拉高性能上限,让用户看到更多的可能性。 iQOO …...
如何避免因不熟悉数据保护法规而受损
在当今数字化时代,数据保护法规的遵守对于企业至关重要。不熟悉新的数据保护法规会导致法律风险增加、财务损失、声誉受损、客户信任下降等多方面的负面影响。其中,法律风险增加尤为严重,因为不符合规定可能引发高额罚款和法律诉讼。企业若未…...
LLaMA Factory 核心原理讲解
大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于大模型算法的研究与应用。曾担任百度千帆大模型比赛、BPAA算法大赛评委,编写微软OpenAI考试认证指导手册。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。授权多项发明专利。对机器学…...
Java题集练习5
Java题集练习5(集合) 1.三种集合差别,集合类都是什么,数据结构是什么,都什么时候用 三者关系 Set集合 Set接口是Collection接口的一个子接口是无序的,set中不包含重复的元素,也就是说set中不…...
操作系统学习笔记-2.3哲学家和管程问题
哲学家问题 问题描述 假设有五位哲学家围坐在一张圆桌旁,每位哲学家面前放有一盘意大利面,他们各自间隔放置一根叉子。哲学家的行为分为“思考”和“进餐”两种状态。为了进餐,哲学家需要同时拿起左手边和右手边的两根叉子。用餐结束后&…...
2023年信息安全工程师摸底测试卷
目录 1.密码算法 2.等级保护 3.密码学 4.安全评估 5.网络安全控制技术 6.恶意代码 7.身份认证 8.资产管理 9.密码分类 10.被动攻击 11.商用密码服务编辑 12.超文本传输协议 13.数字水印技术 14.信息系统安全设计 15.重放攻击 16.信息资产保护 17.身份认证 …...
ReactOS系统中平衡二叉树。给定地址超导其所属区块MmFindRegion()
系列文章目录 PMM_REGION NTAPI MmFindRegion( PVOID BaseAddress, PLIST_ENTRY RegionListHead, PVOID Address, PVOID* RegionBaseAddress ); 宏函数 //给定地址找到其中所属区块 #define CONTAINING_RECORD(address,type,field) ((type FAR *\(PCHAR)(address)-(PCHAR)(&…...
基于TESSY的单元测试与分类树方法深入解析
在现代软件开发中,单元测试是确保软件质量和可靠性的关键步骤之一。特别是对于嵌入式软件,由于其应用环境的特殊性和高安全性要求,单元测试显得尤为重要。本文将基于《TESSY 用户手册》的内容,详细介绍如何使用TESSY 进行单元测试,并深入探讨分类树方法(Classification T…...
整理了一些大模型的课程,非常详细,大模型零基础入门到精通,收藏我这一篇就够了
目前有多个科普类的大模型课程,这些课程涵盖了从基础理论到实际应用的各个方面。以下是一些主要的科普类大模型课程:复旦大学“大模型开发与赋能”专题讲习班:由复旦大学计算机学院邱锡鹏教授带来的《大模型科普讲解》课程,通过深…...
区块链国赛题目--食品溯源(模块三)
区块链国赛题目–食品溯源(模块三) 任务 3-1:区块链应用前端功能开发 1.请基于前端系统的开发模板,在登录组件 login.js、组件管理文件components.js 中添加对应的逻辑代码,实现对前端的角色选择功能,并测试功 能完整性,示例页面如下: 具体要求如下: (1)有明…...
【Searxng】Searxng docker 安装
SearXNG将用户的查询请求分发至多个支持的搜索引擎,并收集返回的结果进行汇总处理。在这个过程中,它通过内置的过滤器功能屏蔽广告和其他不相关内容,确保搜索结果的纯净度。 一键部署 docker run \--name searxng \-p ????:8080 \-v ~/s…...
Java Lock/AQS ReentrantLock 源码
前言 相关系列 《Java & Lock & 目录》(持续更新)《Java & AQS & 目录》(持续更新)《Java & Lock/AQS & ReentrantLock & 源码》(学习过程/多有漏误/仅作参考/不再更新)《Jav…...
魔法伤害--是谁偷走了我的0
起因:需要迁移数据进行数据更新,使用pandasorcal进行数据处理以及库迁移 首先把数据导出为xls格式数据文件,使用python import pandas as pdnew_obj pd.read_excel(ne,dtype{DAY: str, MONTH: str}) 原有导出数据格式为: 使用…...
【ArcGIS Pro实操第4期】绘制三维地图
【ArcGIS Pro实操第4期】绘制三维地图 ArcGIS Pro绘制三维地图-以DEM高程为例参考 如何使用ArcGIS Pro将栅格数据用三维的形式进行表达?在ArcGIS里可以使用ArcScene来实现,ArcGIS Pro实现原理跟ArcScene一致。由于Esri未来将不再对ArcGIS更新,…...
宁波网站优化软件/一键seo提交收录
时间设置有几个相关的概念:1、rtc时间/硬件时间:是指的例如主板上的某个实时时钟(rtc)硬件设备,这个时间是没有时区信息的,或者说他表示哪个时区的时间,依赖于“人为解读”2、系统时间ÿ…...
微企免费网站建设/引流推广是什么意思
这是一款jQuery 3D立方体翻转插件。该插件可以创建水平或垂直的3d立方体效果,可以控制立方体的翻转速度,定义触发立方体旋转的事件等。使用方法在页面中引入jquery和jquery.flipbox.js、jquery.flipbox.css文件。HTML使用下面的结构创建一个3D翻转元素。…...
建设银行大连市分行网站/服务营销案例
以下面的HTML5代码为例来学学习页面的百分比布局: <div class"comic"><img src"fate.png" alt"Fate"><h1>Fate</h1> </div> <div class"comic"><img src"hulk.png" alt…...
互联网网站seo优化/广州网站设计制作
Rsync安装配置昨天由于部门研发同事要做个小项目,要我提供一份rsync的安装配置文档,就简单了写了份,顺便发出来了。1, 测试环境:CentOS release 5.8 2.6.18-308.el5 x86_64IP_S: 192.168.104.137IP_C: 192.168.…...
wordpress是哪个公司的/seo工资一般多少
2016年4月11日作业 一、法律法规和标准规范1、中国标准划分为哪四个层次?要求最低的是哪个?国家标准、行业标准、地方标准和企业标准,其中要求最低的是国家标准。2、国家标准的制订程序包括哪些?前期准备、立项、起草、征求意见、…...
建设网站的企业邮箱网站建设服务/新闻头条 今天
HTML5提供了许多新接口,其中最令人振奋的无疑是Websocket。正是它的存在令网络双向交互得以实现。使用Websocket对于客户端来说无疑十分简单。websocket提供了三个简单的函数,onopen,onclose以及onmessage,顾名思义,他们分别监听s…...