日期工具 公共方法拓展
- 一、 引入pom.xml
- 二、 实现代码
- 1、字符串转换成日期
- 2、日期转换成字符串(yyyy-MM-dd HH:mm:ss)
- 3、获取年初
- 4、获取年末
- 5、判断当前时间是否在时间区间之内
- 6、获取当天距离24小时 还剩几秒
- 7、LocalDate转String
- 8、毫秒转化为date
- 9、获取当前星期几
- 10、时间差
- 11、判断选择的日期是否是本周
- 12、获取当前日期(yyyy-MM-dd)
- 13、 获取本周的开始时间
- 14、 获取本周的结束时间
- 15、获取本月的开始时间
- 16、获取本月的结束时间
- 17、获取上周的开始时间
- 18、获取上周的结束时间
- 19、获取上月的开始时间
- 20、获取上月的结束时间
- 21、获取当天的开始时间
- 22、获取当天的结束时间
- 23、获取昨天开始时间戳
- 24、获取昨天结束时间戳
一、 引入pom.xml
<dependency>
<groupId>org.springblade</groupId>
<artifactId>blade-core-tool</artifactId>
<version>4.1.0</version>
</dependency>
二、 实现代码
1、字符串转换成日期
public static Date StrToDate(String str) {
return DateUtil.parse(str, "yyyy-MM-dd HH:mm:ss");
}
2、日期转换成字符串(yyyy-MM-dd HH:mm:ss)
public static String DateToStr(Date date) {
return DateUtil.formatDateTime(date);
}
3、获取年初
public static Date getDateYearFirst(int year) {
LocalDateTime dateTime = LocalDateTime.of(year, Month.JANUARY, 1, 0, 0, 0);
return DateUtil.toDate(dateTime);
}
4、获取年末
public static Date getDateYearEnd(int year) {
LocalDateTime dateTime = LocalDateTime.of(year, Month.DECEMBER, 31, 23, 59, 59);
Date date = DateUtil.toDate(dateTime);
return date;
}
5、判断当前时间是否在时间区间之内
public static boolean beforeDate(Date startTime, Date date2) {
return date.before(date2);
}
public static boolean afterDate(Date endTime, Date date2) {
return date.after(date2);
}
6、获取当天距离24小时 还剩几秒
public static long getInstantSeconds() {
Instant str1 = DateTimeUtil.toInstant(LocalDateTime.now());
LocalDateTime midnight = LocalDateTime.ofInstant(str1,ZoneId.systemDefault()).plusDays(1).withHour(0).withMinute(0).withSecond(0).withNano(0);
LocalDateTime currentDateTime = LocalDateTime.ofInstant(str1,ZoneId.systemDefault());
long seconds = ChronoUnit.SECONDS.between(currentDateTime, midnight);
return seconds;
}
7、LocalDate转String
public static String getStrToLocalDate(LocalDate date) {
String dateStr = date.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
return dateStr;
}
8、毫秒转化为date
public static String millToDate(Long mill) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date(Long.valueOf(mill));
String formattedDate = sdf.format(date);
return formattedDate;
}
9、获取当前星期几
public static String getDayOfWeek(String date) {
try {
LocalDate localDate = LocalDate.parse(date, DateTimeFormatter.ISO_DATE);
DayOfWeek dayOfWeek = localDate.getDayOfWeek();
String alias = switch (dayOfWeek.getValue()) {
case 1 -> "星期一";
case 2 -> "星期二";
case 3 -> "星期三";
case 4 -> "星期四";
case 5 -> "星期五";
case 6 -> "星期六";
case 7 -> "星期天";
default -> "未知";
};
return alias;
} catch (Exception e) {
e.printStackTrace();
}
return "未知";
}
10、时间差
public static long getDurationSeconds(Date startTime, Date endTime) {
Instant start = startTime.toInstant();
Instant end = endTime.toInstant();
Duration duration = Duration.between(start, end);
return duration.getSeconds();
}
11、判断选择的日期是否是本周
public static boolean isThisWeek(Date time) {
Calendar calendar = Calendar.getInstance();
int currentWeek = calendar.get(Calendar.WEEK_OF_YEAR);
calendar.setTime(time);
int paramWeek = calendar.get(Calendar.WEEK_OF_YEAR);
if (paramWeek == currentWeek) {
return true;
}
return false;
}
12、获取当前日期(yyyy-MM-dd)
public static Integer getDay(Date date) {
// 创建一个 Calendar 对象
Calendar cal1 = Calendar.getInstance();
// 获取当前日期
cal1.setTime(date);
int month = cal1.get(Calendar.MONTH) + 1;
int day = cal1.get(Calendar.DAY_OF_MONTH);
return Integer.parseInt(cal1.get(Calendar.YEAR) + "" + (month < 10 ? "0" + month : month) + "" + (day < 10 ? "0" + day : day));
}
13、 获取本周的开始时间
public static String getBeginDayOfWeek() {
// 获取当天日期
LocalDate now = LocalDate.now();
LocalDate monday = now.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-MM-dd");
return monday.format(pattern);
}
14、 获取本周的结束时间
public static String getEndDayOfWeek() {
// 获取当天日期
LocalDate now = LocalDate.now();
LocalDate sunday = now.with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY));
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-MM-dd");
return sunday.format(pattern);
}
15、获取本月的开始时间
public static String getBeginDayOfMonth() {
// 获取当天日期
LocalDate now = LocalDate.now();
LocalDate firstDayOfMonth = now.with(TemporalAdjusters.firstDayOfMonth());
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-MM-dd");
return firstDayOfMonth.format(pattern);
}
16、获取本月的结束时间
public static String getEndDayOfMonth() {
// 获取当天日期
LocalDate now = LocalDate.now();
LocalDate lastDayOfMonth = now.with(TemporalAdjusters.lastDayOfMonth());
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-MM-dd");
return lastDayOfMonth.format(pattern);
}
17、获取上周的开始时间
public static String getBeginDayOfLastWeek() {
LocalDate lastWeek = LocalDate.now().minusWeeks(1).with(TemporalAdjusters.previous(DayOfWeek.SUNDAY)).plusDays(1L);
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-MM-dd");
return lastWeek.format(pattern);
}
18、获取上周的结束时间
public static String getEndDayOfLastWeek() {
LocalDate lastWeek = LocalDate.now().minusWeeks(1).with(TemporalAdjusters.next(DayOfWeek.MONDAY)).minusDays(1L);
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-MM-dd");
return lastWeek.format(pattern);
}
19、获取上月的开始时间
public static String getBeginDayOfLastMonth() {
LocalDate today = LocalDate.now();
LocalDate lastMonthStart = today.minusMonths(1).withDayOfMonth(1);
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-MM-dd");
return lastMonthStart.format(pattern);
}
20、获取上月的结束时间
public static String getEndDayOfLastMonth() {
LocalDate today = LocalDate.now();
LocalDate lastDayOfLastMonth = today.minus(1, ChronoUnit.MONTHS).withDayOfMonth(today.minus(1, ChronoUnit.MONTHS).lengthOfMonth());
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-MM-dd");
return lastDayOfLastMonth.format(pattern);
}
21、获取当天的开始时间
public static String getStartDayOfToDay() {
// 获取当天日期
LocalDate now = LocalDate.now();
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime todayStart = now.atStartOfDay();
String startTime = todayStart.format(pattern);
return startTime;
}
22、获取当天的结束时间
public static String getEndDayOfToDay() {
// 获取当天日期
LocalDate now = LocalDate.now();
LocalDateTime todayEnd = LocalDateTime.of(now, LocalTime.MAX);
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String endTime = todayEnd.format(pattern);
return endTime;
}
23、获取昨天开始时间戳
public static long yesterdayStartTime(){
// 获取当前日期的前一天
LocalDate yesterday = LocalDate.now().minusDays(1);
LocalDateTime startOfDay = yesterday.atStartOfDay();
// 转换为特定时区的时间戳(这里以系统默认时区为例)
long startTimestamp = startOfDay.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
return startTimestamp;
}
24、获取昨天结束时间戳
public static long yesterdayEndTime(){
// 获取当前日期的前一天
LocalDate yesterday = LocalDate.now().minusDays(1);
LocalDateTime startOfDay = yesterday.atStartOfDay();
LocalDateTime endOfDay = startOfDay.plusDays(1).minusNanos(1);
// 转换为特定时区的时间戳(这里以系统默认时区为例)
long endTimestamp = endOfDay.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
return endTimestamp;
}
Java的世界博大精深,这只是冰山一角,如果有任何问题或建议,欢迎随时与我交流。