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面试大全
后端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核心知识整理