史上最全Java7日期时间工具类

public static String getDateTimeStr(long timestamp, String pattern) {

return new SimpleDateFormat(pattern).format(timestamp);

}

/**

  • 日期字符串转换为日期(java.util.Date)

  • @param dateStr 日期字符串

  • @param pattern 日期格式 例如DATETIME_PATTERN

  • @return Date 日期

*/

public static Date parse(String dateStr, String pattern) {

Date date = null;

SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);

// 设置lenient为false. 否则SimpleDateFormat会比较宽松地验证日期,比如2007/02/29会被接受,并转换成2007/03/01

dateFormat.setLenient(false);

try {

date = dateFormat.parse(dateStr);

} catch (ParseException e) {

e.printStackTrace();

}

return date;

}

/**

  • 获取指定日期num年数之后的日期.

  • @param num 间隔年数(负数表示之前)

  • @return Date 日期

*/

public static Date addYears(Date date, int num) {

return add(date, num, Calendar.YEAR);

}

/**

  • 获取当前日期指定年数之后的日期.

  • @param num 间隔年数(负数表示之前)

  • @return Date 日期

*/

public static Date addYears(int num) {

return add(new Date(), num, Calendar.YEAR);

}

/**

  • 获取当前日期num月数之后的日期.

  • @param num 间隔月数(负数表示之前)

  • @return Date 日期

*/

public static Date addMonths(Date date, int num) {

return add(date, num, Calendar.MONTH);

}

/**

  • 获取当前日期指定月数之后的日期.

  • @param num 间隔月数(负数表示之前)

  • @return Date 日期

*/

public static Date addMonths(int num) {

return add(new Date(), num, Calendar.MONTH);

}

/**

  • 获取指定日期num周数之后的日期.

  • @param date 日期

  • @param num 周数(负数表示之前)

  • @return Date 新的日期

*/

public static Date addWeeks(Date date, int num) {

return add(date, num, Calendar.WEEK_OF_YEAR);

}

/**

  • 获取当前日期指定周数之后的日期.

  • @param num 周数(负数表示之前)

  • @return Date 新的日期

*/

public static Date addWeeks(int num) {

return add(new Date(), num, Calendar.WEEK_OF_YEAR);

}

/**

  • 获取指定日期num天数之后的日期.

  • @param date 日期

  • @param num 天数(负数表示之前)

  • @return Date 新的日期

*/

public static Date addDays(Date date, int num) {

return add(date, num, Calendar.DAY_OF_MONTH);

}

/**

  • 获取当前日期指定天数之后的日期.

  • @param num 天数(负数表示之前)

  • @return Date 新的日期

*/

public static Date addDays(int num) {

return add(new Date(), num, Calendar.DAY_OF_MONTH);

}

/**

  • 获取指定日期num小时之后的日期.

  • @param date 日期

  • @param num 小时数(负数表示之前)

  • @return Date 新的日期

*/

public static Date addHours(Date date, int num) {

return add(date, num, Calendar.HOUR_OF_DAY);

}

/**

  • 获取当前日期指定小时之后的日期.

  • @param num 小时数(负数表示之前)

  • @return Date 新的日期

*/

public static Date addHours(int num) {

return add(new Date(), num, Calendar.HOUR_OF_DAY);

}

/**

  • 获取指定日期num分钟之后的日期.

  • @param date 日期

  • @param num 分钟数(负数表示之前)

  • @return Date 新的日期

*/

public static Date addMinutes(Date date, int num) {

return add(date, num, Calendar.MINUTE);

}

/**

  • 获取当前日期指定分钟之后的日期.

  • @param num 分钟数(负数表示之前)

  • @return Date 新的日期

*/

public static Date addMinutes(int num) {

return add(new Date(), num, Calendar.MINUTE);

}

/**

  • 获取指定日期num秒钟之后的日期.

  • @param date 日期

  • @param num 秒钟数(负数表示之前)

  • @return Date 新的日期

*/

public static Date addSeconds(Date date, int num) {

return add(date, num, Calendar.SECOND);

}

/**

  • 获取当前日期指定秒钟之后的日期.

  • @param num 秒钟数(负数表示之前)

  • @return Date 新的日期

*/

public static Date addSeconds(int num) {

return add(new Date(), num, Calendar.SECOND);

}

/**

  • 获取指定日期num毫秒之后的日期.

  • @param date 日期

  • @param num 毫秒数(负数表示之前)

  • @return Date 新的日期

*/

public static Date addMilliSeconds(Date date, int num) {

return add(date, num, Calendar.MILLISECOND);

}

/**

  • 获取当前日期指定毫秒之后的日期.

  • @param num 毫秒数(负数表示之前)

  • @return Date 新的日期

*/

public static Date addMilliSeconds(int num) {

return add(new Date(), num, Calendar.MILLISECOND);

}

/**

  • 获取当前日期指定数量日期时间单位之后的日期.

  • @param date 日期

  • @param num 数量

  • @param unit 日期时间单位

  • @return Date 新的日期

*/

public static Date add(Date date, int num, int unit) {

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);

calendar.add(unit, num);

return calendar.getTime();

}

/**

  • 计算两个日期之间相隔年数.

  • @param startDate 开始日期

  • @param endDate 结束日期

  • @return int 相隔年数,向下取整

*/

public static int getYearsBetween(Date startDate, Date endDate) {

return getMonthsBetween(startDate, endDate) / 12;

}

/**

  • 计算两个日期之间相隔月数.

  • @param startDate 开始日期

  • @param endDate 结束日期

  • @return int 相隔月数,向下取整

*/

public static int getMonthsBetween(Date startDate, Date endDate) {

int months;

int flag = 0;

Calendar startCalendar = Calendar.getInstance();

startCalendar.setTime(startDate);

Calendar endCalendar = Calendar.getInstance();

endCalendar.setTime(endDate);

if (endCalendar.equals(startCalendar)) {

return 0;

}

if (startCalendar.after(endCalendar)) {

Calendar temp = startCalendar;

startCalendar = endCalendar;

endCalendar = temp;

}

if (endCalendar.get(Calendar.DAY_OF_MONTH) < startCalendar.get(Calendar.DAY_OF_MONTH)) {

flag = 1;

}

if (endCalendar.get(Calendar.YEAR) > startCalendar.get(Calendar.YEAR)) {

months = ((endCalendar.get(Calendar.YEAR) - startCalendar.get(Calendar.YEAR))

  • 12 + endCalendar.get(Calendar.MONTH) - flag)
  • startCalendar.get(Calendar.MONTH);

} else {

months = endCalendar.get(Calendar.MONTH)

  • startCalendar.get(Calendar.MONTH) - flag;

}

return months;

}

/**

  • 计算两个日期之间相隔周数.

  • @param startDate 开始日期

  • @param endDate 结束日期

  • @return long 相隔周数,向下取整

*/

public static long getWeeksBetween(Date startDate, Date endDate) {

return getDaysBetween(startDate, endDate) / DAYS_PER_WEEK;

}

/**

  • 计算两个日期之间相隔天数.

  • @param startDate 开始日期

  • @param endDate 结束日期

  • @return long 相隔天数,向下取整

*/

public static long getDaysBetween(Date startDate, Date endDate) {

return (endDate.getTime() - startDate.getTime()) / MILLISECONDS_PER_DAY;

}

/**

  • 计算两个日期之间相隔小时数.

  • @param startDate 开始日期

  • @param endDate 结束日期

  • @return long 相隔小时数,向下取整

*/

public static long getHoursBetween(Date startDate, Date endDate) {

return (endDate.getTime() - startDate.getTime()) / MILLISECONDS_PER_HOUR;

}

/**

  • 计算两个日期之间相隔分钟数.

  • @param startDate 开始日期

  • @param endDate 结束日期

  • @return long 相隔分钟数,向下取整

*/

public static long getMinutesBetween(Date startDate, Date endDate) {

return (endDate.getTime() - startDate.getTime()) / MILLISECONDS_PER_MINU;

}

/**

  • 计算两个日期之间相隔秒数.

  • @param startDate 开始日期

  • @param endDate 结束日期

  • @return long 相隔秒数,向下取整

*/

public static long getSecondsBetween(Date startDate, Date endDate) {

return (endDate.getTime() - startDate.getTime()) / MILLISECONDS_PER_SECONDS;

}

/**

  • 获取当前季度.

  • 注意:3~5月为春季 1,6~8月为夏季 2,9~11月为秋季 3,12~2月为冬季 4

  • @return int 当前季度数

*/

public static int getCurrentSeason() {

Calendar calendar = Calendar.getInstance();

int month = calendar.get(Calendar.MONTH) + 1;

int season = 0;

if (month >= 3 && month <= 5) {

season = SPRING;

} else if (month >= 6 && month <= 8) {

season = SUMMER;

} else if (month >= 9 && month <= 11) {

season = AUTUMN;

} else if (month == 12 || month >= 1 && month <= 2) {

season = WINTER;

}

return season;

}

/**

  • 获取当前日期与之前日期的时间间隔.

  • @param date 之前的日期

  • @return String 例如 16分钟前、2小时前、3天前、4月前、5年前等

*/

public static String getIntervalByDate(Date date) {

long secondsBetween = getSecondsBetween(date, new Date());

return getIntervalBySeconds(secondsBetween);

}

/**

  • 将以秒为单位的时间转换为其他单位.

  • @param seconds 秒数

  • @return String 例如 16分钟前、2小时前、3天前、4月前、5年前等

*/

public static String getIntervalBySeconds(long seconds) {

StringBuffer buffer = new StringBuffer();

if (seconds < SECONDS_PER_MINUTE) {

buffer.append(seconds).append(“秒前”);

} else if (seconds < SECONDS_PER_HOUR) {

buffer.append((long) Math.floor(seconds / SECONDS_PER_MINUTE)).append(“分钟前”);

} else if (seconds < SECONDS_PER_DAY) {

buffer.append((long) Math.floor(seconds / SECONDS_PER_HOUR)).append(“小时前”);

} else if (seconds < SECONDS_PER_WEEK) {

buffer.append((long) Math.floor(seconds / SECONDS_PER_DAY)).append(“天前”);

} else if (seconds < SECONDS_PER_MONTH) {

buffer.append((long) Math.floor(seconds / SECONDS_PER_WEEK)).append(“周前”);

} else if (seconds < SECONDS_PER_YEAR) {

buffer.append((long) Math.floor(seconds / SECONDS_PER_MONTH)).append(“月前”);

} else {

buffer.append((long) Math.floor(seconds / SECONDS_PER_YEAR)).append(“年前”);

}

return buffer.toString();

}

/**

  • 将 Date 日期转化为 Calendar 类型日期.

  • @param date 指定日期

  • @return Calendar Calendar对象

*/

public static Calendar getCalendar(Date date) {

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);

return calendar;

}

/**

  • 得到UTC时间,类型为字符串,格式为"yyyy-MM-dd HH:mm"

  • 如果获取失败,返回null

  • @return

*/

public static String getUTCTimeStr() {

StringBuffer UTCTimeBuffer = new StringBuffer();

// 1、取得本地时间:

Calendar cal = Calendar.getInstance();

// 2、取得时间偏移量:

int zoneOffset = cal.get(Calendar.ZONE_OFFSET);

// 3、取得夏令时差:

int dstOffset = cal.get(Calendar.DST_OFFSET);

// 4、从本地时间里扣除这些差量,即可以取得UTC时间:

cal.add(Calendar.MILLISECOND, -(zoneOffset + dstOffset));

int year = cal.get(Calendar.YEAR);

int month = cal.get(Calendar.MONTH) + 1;

int day = cal.get(Calendar.DAY_OF_MONTH);

int hour = cal.get(Calendar.HOUR_OF_DAY);

int minute = cal.get(Calendar.MINUTE);

UTCTimeBuffer.append(year).append(“-”).append(month).append(“-”).append(day);

UTCTimeBuffer.append(" “).append(hour).append(”😊.append(minute);

try {

SimpleDateFormat sdf = new SimpleDateFormat(NO_SECOND_DATETIME_PATTERN);

sdf.parse(UTCTimeBuffer.toString());

return UTCTimeBuffer.toString();

} catch (ParseException e) {

e.printStackTrace();

}

return null;

}

/**

  • 将Timestamp转换为yyyy-MM-dd HH:mm:ss格式字符串

  • @param timestamp

  • @return

*/

public static String timestampToStr(Timestamp timestamp) {

return timestamp.toString().substring(0, 19);

}

/**

  • 比较传进来的日期是否大于当前日期,如果传进来的日期大于当前日期则返回true,否则返回false

  • @param dateStr 日期字符串

  • @param pattern 日期格式

  • @return boolean

*/

public static boolean compareNowDate(String dateStr, String pattern) {

SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);

try {

Date date = simpleDateFormat.parse(dateStr);

return date.after(new Date());

} catch (ParseException e) {

e.printStackTrace();

}

return false;

}

/**

  • 如果endDateStr>startDateStr,返回true,否则返回false

  • @param startDateStr 开始日期字符串

  • @param endDateStr 结束日期字符串

  • @param pattern 日期格式

  • @return boolean

*/

public static boolean compareDate(String startDateStr, String endDateStr, String pattern) {

SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);

try {

Date startDate = simpleDateFormat.parse(startDateStr);

Date endDate = simpleDateFormat.parse(endDateStr);

return endDate.after(startDate);

} catch (ParseException e) {

e.printStackTrace();

}

return false;

}

/**

  • 如果startDate>endDate,返回true,否则返回false

  • @param startDate 开始日期字符串

  • @param endDate 结束日期字符串

  • @return boolean

*/

public static boolean compareDate(Date startDate, Date endDate) {

return endDate.after(startDate);

}

/**

  • 判断日期是否合法

  • @param dateStr yyyy-MM-dd HH:mm:ss格式日期字符串

  • @return

*/

public static boolean isValidDate(String dateStr) {

boolean convertSuccess = true;

// 指定日期格式为四位年/两位月份/两位日期

SimpleDateFormat format = new SimpleDateFormat(DATETIME_PATTERN);

try {

// 设置lenient为false. 否则SimpleDateFormat会比较宽松地验证日期,比如2007/02/29会被接受,并转换成2007/03/01

format.setLenient(false);

format.parse(dateStr);

} catch (ParseException e) {

e.printStackTrace();

// 如果throw java.text.ParseException或者NullPointerException,就说明格式不对

convertSuccess = false;

}

return convertSuccess;

}

/**

  • 判断日期是否为月底最后一天

  • @param date 日期

  • @return boolean true:是 false:否

*/

public static boolean isLastDayofMonth(Date date) {

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);

calendar.set(Calendar.DATE, (calendar.get(Calendar.DATE) + 1));

if (calendar.get(Calendar.DAY_OF_MONTH) == 1) {

return true;

}

return false;

}

/**

  • 获取本年第一天的日期字符串

  • @return String 格式:yyyy-MM-dd HH:mm:ss

*/

public static String getYearStartTimeStr() {

return getDateTimeStr(getStartDayOfYear(new Date()));

}

/**

  • 获取指定日期当年第一天的日期字符串

  • @param date

  • @return String 格式:yyyy-MM-dd HH:mm:ss

*/

public static String getYearStartTimeStr(Date date) {

return getDateTimeStr(getStartDayOfYear(date));

}

/**

  • 获取本年最后一天的日期字符串

  • @return String 格式:yyyy-MM-dd HH:mm:ss

*/

public static String getYearEndTimeStr() {

return getDateTimeStr(getEndDayOfYear(new Date()));

}

/**

  • 获取指定日期当年最后一天的日期字符串

  • @param date 指定日期

  • @return String 格式:yyyy-MM-dd HH:mm:ss

*/

public static String getYearEndTimeStr(Date date) {

return getDateTimeStr(getEndDayOfYear(date));

}

/**

  • 获取本月第一天的日期字符串

  • 格式:yyyy-MM-dd HH:mm:ss

  • @return

*/

public static String getMonthStartTimeStr() {

return getDateTimeStr(getStartDayOfMonth(new Date()));

}

/**

  • 获取指定日期当月第一天的日期字符串

  • @param date 指定日期

  • @return String 格式:yyyy-MM-dd HH:mm:ss

*/

public static String getMonthStartTimeStr(Date date) {

return getDateTimeStr(getStartDayOfMonth(date));

}

/**

  • 获取本月最后一天的日期字符串

  • @return String 格式:yyyy-MM-dd HH:mm:ss

*/

public static String getMonthEndTimeStr() {

return getDateTimeStr(getEndDayOfMonth(new Date()));

}

/**

  • 获取指定日期当月最后一天的日期字符串

  • @param date 指定日期

  • @return String 格式:yyyy-MM-dd HH:mm:ss

*/

public static String getMonthEndTimeStr(Date date) {

return getDateTimeStr(getEndDayOfMonth(date));

}

/**

  • 获取本周第一天的日期字符串

  • @return String 格式:yyyy-MM-dd HH:mm:ss

*/

public static String getWeekStartTimeStr() {

return getDateTimeStr(getStartDayOfWeek(new Date()));

}

/**

  • 获取指定日期当周第一天的日期字符串

  • @param date 指定日期

  • @return String 格式:yyyy-MM-dd HH:mm:ss

*/

public static String getWeekStartTimeStr(Date date) {

return getDateTimeStr(getStartDayOfWeek(date));

}

/**

  • 获取本周最后一天的日期字符串

  • @return String 格式:yyyy-MM-dd HH:mm:ss

*/

public static String getWeekEndTimeStr() {

return getDateTimeStr(getEndDayOfWeek(new Date()));

}

/**

  • 获取指定日期当周最后一天的日期字符串

  • @param date 指定日期

  • @return String 格式:yyyy-MM-dd HH:mm:ss

*/

public static String getWeekEndTimeStr(Date date) {

return getDateTimeStr(getEndDayOfWeek(date));

}

/**

  • 获取今天的开始时间字符串

  • @return String 格式:yyyy-MM-dd HH:mm:ss

*/

public static String getTodayStartTimeStr() {

return getDateTimeStr(getTodayStartTime(new Date()));

}

/**

  • 获取指定日期的开始时间字符串

  • @param date 指定日期

  • @return String 格式:yyyy-MM-dd HH:mm:ss

*/

public static String getTodayStartTimeStr(Date date) {

return getDateTimeStr(getTodayStartTime(date));

}

/**

  • 获取今天的结束时间字符串

  • @return String 格式:yyyy-MM-dd HH:mm:ss

*/

public static String getTodayEndTimeStr() {

return getDateTimeStr(getTodayEndTime(new Date()));

}

/**

  • 获取指定日期的结束时间字符串

  • @param date 指定日期

  • @return String 格式:yyyy-MM-dd HH:mm:ss

*/

public static String getTodayEndTimeStr(Date date) {

return getDateTimeStr(getTodayEndTime(date));

}

/**

  • 获得指定日期所在日的开始时间字符串

  • @param date 指定日期

  • @return String 例如:2020-12-06 00:00:00

*/

public static String getDateStartTimeStr(Date date) {

String result = format(date, DATE_PATTERN);

return result.concat(" ").concat(START_TIME);

}

/**

  • 获得指定日期所在日的结束时间字符串

  • @param date 指定日期

  • @return String 例如:2020-12-06 23:59:59

*/

public static String getDateEndTimeStr(Date date) {

String result = format(date, DATE_PATTERN);

return result.concat(" ").concat(END_TIME);

}

/**

  • 根据日历返回日期时间字符串

  • @param calendar 日历

  • @return String 日期时间字符串

*/

public static String getDateTimeStr(Calendar calendar) {

StringBuffer buf = new StringBuffer(“”);

buf.append(calendar.get(Calendar.YEAR));

buf.append(“-”);

buf.append(calendar.get(Calendar.MONTH) + 1 > 9 ? calendar.get(Calendar.MONTH) + 1 + “”
“0” + (calendar.get(Calendar.MONTH) + 1));

buf.append(“-”);

buf.append(calendar.get(Calendar.DAY_OF_MONTH) > 9 ? calendar.get(Calendar.DAY_OF_MONTH) + “”
“0” + calendar.get(Calendar.DAY_OF_MONTH));

buf.append(" ");

buf.append(calendar.get(Calendar.HOUR_OF_DAY) > 9 ? calendar.get(Calendar.HOUR_OF_DAY) + “”
“0” + calendar.get(Calendar.HOUR_OF_DAY));

buf.append(“:”);

buf.append(calendar.get(Calendar.MINUTE) > 9 ? calendar.get(Calendar.MINUTE) + “”
“0” + calendar.get(Calendar.MINUTE));

buf.append(“:”);

buf.append(calendar.get(Calendar.SECOND) > 9 ? calendar.get(Calendar.SECOND) + “”
“0” + calendar.get(Calendar.SECOND));

return buf.toString();

}

/**

  • 获取今年的第一天

  • @return Calendar 日历

*/

public static Calendar getStartDayOfYear(Date date) {

Calendar calendar = Calendar.getInstance(Locale.CHINA);

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);

return calendar;

}

/**

  • 获取今年的最后一天

  • @return Calendar 日历

*/

public static Calendar getEndDayOfYear(Date date) {

Calendar calendar = Calendar.getInstance(Locale.CHINA);

calendar.setTime(date);

int i = calendar.getActualMaximum(Calendar.DAY_OF_YEAR);

calendar.set(Calendar.DAY_OF_YEAR, i);

calendar.set(Calendar.HOUR_OF_DAY, 23);

calendar.set(Calendar.MINUTE, 59);

calendar.set(Calendar.SECOND, 59);

return calendar;

}

/**

  • 获取本月的第一天

  • @return Calendar 日历

*/

public static Calendar getStartDayOfMonth(Date date) {

Calendar calendar = Calendar.getInstance(Locale.CHINA);

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);

return calendar;

}

/**

  • 获取本月的最后一天

  • @return Calendar 日历

*/

public static Calendar getEndDayOfMonth(Date date) {

Calendar calendar = Calendar.getInstance(Locale.CHINA);

calendar.setTime(date);

int i = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

calendar.set(Calendar.DAY_OF_MONTH, i);

calendar.set(Calendar.HOUR_OF_DAY, 23);

calendar.set(Calendar.MINUTE, 59);

calendar.set(Calendar.SECOND, 59);

return calendar;

}

/**

  • 获取本周的第一天,一个星期的第一天是星期一,最后一天是星期天

  • @return Calendar 日历

*/

public static Calendar getStartDayOfWeek(Date date) {

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);

// 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一

calendar.setFirstDayOfWeek(Calendar.MONDAY);

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);

return calendar;

}

/**

  • 获取本周的最后一天,一个星期的第一天是星期一,最后一天是星期天

  • @return Calendar 日历

*/

public static Calendar getEndDayOfWeek(Date date) {

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);

// 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一

calendar.setFirstDayOfWeek(Calendar.MONDAY);

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);

return calendar;

}

/**

  • 获取今天开始时间

  • @return

*/

总结

以上是字节二面的一些问题,面完之后其实挺后悔的,没有提前把各个知识点都复习到位。现在重新好好复习手上的面试大全资料(含JAVA、MySQL、算法、Redis、JVM、架构、中间件、RabbitMQ、设计模式、Spring等),现在起闭关修炼半个月,争取早日上岸!!!

下面给大家分享下我的面试大全资料

  • 第一份是我的后端JAVA面试大全

image.png

后端JAVA面试大全

  • 第二份是MySQL+Redis学习笔记+算法+JVM+JAVA核心知识整理

字节二面拜倒在“数据库”脚下,闭关修炼半个月,我还有机会吗?

MySQL+Redis学习笔记算法+JVM+JAVA核心知识整理

  • 第三份是Spring全家桶资料

字节二面拜倒在“数据库”脚下,闭关修炼半个月,我还有机会吗?

MySQL+Redis学习笔记算法+JVM+JAVA核心知识整理

ndar.HOUR_OF_DAY, 23);

calendar.set(Calendar.MINUTE, 59);

calendar.set(Calendar.SECOND, 59);

return calendar;

}

/**

  • 获取本周的第一天,一个星期的第一天是星期一,最后一天是星期天

  • @return Calendar 日历

*/

public static Calendar getStartDayOfWeek(Date date) {

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);

// 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一

calendar.setFirstDayOfWeek(Calendar.MONDAY);

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);

return calendar;

}

/**

  • 获取本周的最后一天,一个星期的第一天是星期一,最后一天是星期天

  • @return Calendar 日历

*/

public static Calendar getEndDayOfWeek(Date date) {

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);

// 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一

calendar.setFirstDayOfWeek(Calendar.MONDAY);

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);

return calendar;

}

/**

  • 获取今天开始时间

  • @return

*/

总结

以上是字节二面的一些问题,面完之后其实挺后悔的,没有提前把各个知识点都复习到位。现在重新好好复习手上的面试大全资料(含JAVA、MySQL、算法、Redis、JVM、架构、中间件、RabbitMQ、设计模式、Spring等),现在起闭关修炼半个月,争取早日上岸!!!

下面给大家分享下我的面试大全资料

  • 第一份是我的后端JAVA面试大全

[外链图片转存中…(img-i3GqjAfP-1714190187299)]

后端JAVA面试大全

  • 第二份是MySQL+Redis学习笔记+算法+JVM+JAVA核心知识整理

[外链图片转存中…(img-GqaKbOEY-1714190187300)]

MySQL+Redis学习笔记算法+JVM+JAVA核心知识整理

  • 第三份是Spring全家桶资料

[外链图片转存中…(img-jD08g0up-1714190187300)]

MySQL+Redis学习笔记算法+JVM+JAVA核心知识整理

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 19
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值