运行结果:
当前时间:2021-02-22 10:14:51
今天开始时间:2021-02-22 00:00:00
今天结束时间:2021-02-22 23:59:59
昨天开始时间:2021-02-21 00:00:00
昨天结束时间:2021-02-21 23:59:59
最近7天开始时间:2021-02-15 00:00:00
最近7天结束时间:2021-02-15 23:59:59
最近30天开始时间:2021-01-23 00:00:00
最近30天结束时间:2021-01-23 23:59:59
最近90天开始时间:2020-11-24 00:00:00
最近90天结束时间:2020-11-24 23:59:59
最近1年开始时间:2020-02-22 00:00:00
最近1年结束时间:2020-02-22 23:59:59
本周起开始时间:2021-02-22 00:00:00
本周起结束时间:2021-02-28 23:59:59
本月开始时间:2021-02-01 00:00:00
本月结束时间:2021-02-28 23:59:59
上个月开始时间:2021-01-01 00:00:00
上个月结束时间:2021-01-31 23:59:59
本季度起开始时间:2021-01-01 00:00:00
本季度起结束时间:2021-03-31 23:59:59
今年起开始时间:2021-01-01 00:00:00
今年起结束时间:2021-12-31 23:59:59
package cn.com.javakf.util;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.TimeZone;
public class DateUtil {
private static DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
public static void main(String[] args) throws Exception {
System.out.println("当前时间:" + getCurrentTime());
System.out.println("今天开始时间:" + getTodayStartTime());
System.out.println("今天结束时间:" + getTodayEndTime());
System.out.println("昨天开始时间:" + getYesterdayStartTime());
System.out.println("昨天结束时间:" + getYesterdayEndTime());
System.out.println("最近7天开始时间:" + getLast7DaysStartTime());
System.out.println("最近7天结束时间:" + getLast7DaysEndTime());
System.out.println("最近30天开始时间:" + getLast30DaysStartTime());
System.out.println("最近30天结束时间:" + getLast30DaysEndTime());
System.out.println("最近90天开始时间:" + getLast90DaysStartTime());
System.out.println("最近90天结束时间:" + getLast90DaysEndTime());
System.out.println("最近1年开始时间:" + getLastYearStartTime());
System.out.println("最近1年结束时间:" + getLastYearEndTime());
System.out.println("本周起开始时间:" + getFromThisWeekStartTime());
System.out.println("本周起结束时间:" + getFromThisWeekEndTime());
System.out.println("本月开始时间:" + getMonthStartTime());
System.out.println("本月结束时间:" + getMonthEndTime());
System.out.println("上个月开始时间:" + getLastMonthStartTime());
System.out.println("上个月结束时间:" + getLastMonthEndTime());
System.out.println("本季度起开始时间:" + getFromThisQuarterStartTime());
System.out.println("本季度起结束时间:" + getFromThisQuarterEndTime());
System.out.println("今年起开始时间:" + getFromThisYearStartTime());
System.out.println("今年起结束时间:" + getFromThisYearEndTime());
}
/**
* 当前时间
*
* @return
*/
public static String getCurrentTime() {
LocalDateTime currentTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(new Date().getTime()), ZoneId.systemDefault());
return currentTime.format(dtf);
}
/**
* 今天开始时间
*
* @return
*/
public static String getTodayStartTime() {
LocalDateTime todayStart = LocalDateTime.of(LocalDate.now(), LocalTime.MIN);
return todayStart.format(dtf);
}
/**
* 今天结束时间
*
* @return
*/
public static String getTodayEndTime() {
LocalDateTime todayEnd = LocalDateTime.of(LocalDate.now(), LocalTime.MAX);
return todayEnd.format(dtf);
}
/**
* 昨天开始时间
*
* @return
*/
public static String getYesterdayStartTime() {
Calendar cal = new GregorianCalendar();
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
cal.add(Calendar.DAY_OF_MONTH, -1);
LocalDateTime yesterdayStart = LocalDateTime.ofInstant(Instant.ofEpochMilli(cal.getTimeInMillis()), ZoneId.systemDefault());
return yesterdayStart.format(dtf);
}
/**
* 昨天结束时间
*
* @return
*/
public static String getYesterdayEndTime() {
Calendar cal = new GregorianCalendar();
cal.set(Calendar.HOUR_OF_DAY, 23);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
cal.add(Calendar.DAY_OF_MONTH, -1);
LocalDateTime yesterdayEnd = LocalDateTime.ofInstant(Instant.ofEpochMilli(cal.getTimeInMillis()), ZoneId.systemDefault());
return yesterdayEnd.format(dtf);
}
/**
* 最近7天开始时间
*
* @return
*/
public static String getLast7DaysStartTime() {
Calendar cal = new GregorianCalendar();
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
cal.add(Calendar.DAY_OF_MONTH, -7);
LocalDateTime last7DaysStart = LocalDateTime.ofInstant(Instant.ofEpochMilli(cal.getTimeInMillis()), ZoneId.systemDefault());
return last7DaysStart.format(dtf);
}
/**
* 最近7天结束时间
*
* @return
*/
public static String getLast7DaysEndTime() {
Calendar cal = new GregorianCalendar();
cal.set(Calendar.HOUR_OF_DAY, 23);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
cal.add(Calendar.DAY_OF_MONTH, -7);
LocalDateTime last7DaysEnd = LocalDateTime.ofInstant(Instant.ofEpochMilli(cal.getTimeInMillis()), ZoneId.systemDefault());
return last7DaysEnd.format(dtf);
}
/**
* 最近30天开始时间
*
* @return
*/
public static String getLast30DaysStartTime() {
Calendar cal = new GregorianCalendar();
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
cal.add(Calendar.DAY_OF_MONTH, -30);
LocalDateTime last30DaysStart = LocalDateTime.ofInstant(Instant.ofEpochMilli(cal.getTimeInMillis()), ZoneId.systemDefault());
return last30DaysStart.format(dtf);
}
/**
* 最近30天结束时间
*
* @return
*/
public static String getLast30DaysEndTime() {
Calendar cal = new GregorianCalendar();
cal.set(Calendar.HOUR_OF_DAY, 23);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
cal.add(Calendar.DAY_OF_MONTH, -30);
LocalDateTime last30DaysEnd = LocalDateTime.ofInstant(Instant.ofEpochMilli(cal.getTimeInMillis()), ZoneId.systemDefault());
return last30DaysEnd.format(dtf);
}
/**
* 最近90天开始时间
*
* @return
*/
public static String getLast90DaysStartTime() {
Calendar cal = new GregorianCalendar();
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
cal.add(Calendar.DAY_OF_MONTH, -90);
LocalDateTime last90DaysStart = LocalDateTime.ofInstant(Instant.ofEpochMilli(cal.getTimeInMillis()), ZoneId.systemDefault());
return last90DaysStart.format(dtf);
}
/**
* 最近90天结束时间
*
* @return
*/
public static String getLast90DaysEndTime() {
Calendar cal = new GregorianCalendar();
cal.set(Calendar.HOUR_OF_DAY, 23);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
cal.add(Calendar.DAY_OF_MONTH, -90);
LocalDateTime last90DaysEnd = LocalDateTime.ofInstant(Instant.ofEpochMilli(cal.getTimeInMillis()), ZoneId.systemDefault());
return last90DaysEnd.format(dtf);
}
/**
* 最近1年开始时间
*
* @return
*/
public static String getLastYearStartTime() {
Long currentTime = System.currentTimeMillis();
String timeZone = "GMT+8:00";
Calendar cal = Calendar.getInstance();// 获取当前日期
cal.setTimeZone(TimeZone.getTimeZone(timeZone));
cal.setTimeInMillis(currentTime);
cal.add(Calendar.YEAR, -1);
cal.add(Calendar.MONTH, 0);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
LocalDateTime lastYearStart = LocalDateTime.ofInstant(Instant.ofEpochMilli(cal.getTimeInMillis()), ZoneId.systemDefault());
return lastYearStart.format(dtf);
}
/**
* 最近1年结束时间
*
* @return
*/
public static String getLastYearEndTime() {
Long currentTime = System.currentTimeMillis();
String timeZone = "GMT+8:00";
Calendar cal = Calendar.getInstance();// 获取当前日期
cal.setTimeZone(TimeZone.getTimeZone(timeZone));
cal.setTimeInMillis(currentTime);
cal.add(Calendar.YEAR, -1);
cal.add(Calendar.MONTH, 0);
cal.set(Calendar.HOUR_OF_DAY, 23);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
LocalDateTime lastYearEnd = LocalDateTime.ofInstant(Instant.ofEpochMilli(cal.getTimeInMillis()), ZoneId.systemDefault());
return lastYearEnd.format(dtf);
}
/**
* 本周开始时间
*
* @return
*/
public static String getFromThisWeekStartTime() {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.WEEK_OF_MONTH, 0);
cal.set(Calendar.DAY_OF_WEEK, 2);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
LocalDateTime fromThisWeekStart = LocalDateTime.ofInstant(Instant.ofEpochMilli(cal.getTimeInMillis()), ZoneId.systemDefault());
return fromThisWeekStart.format(dtf);
}
/**
* 本周开始时间
*
* @return
*/
public static String getFromThisWeekEndTime() {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_WEEK, cal.getActualMaximum(Calendar.DAY_OF_WEEK));
cal.add(Calendar.DAY_OF_WEEK, 1);
cal.set(Calendar.HOUR_OF_DAY, 23);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
cal.set(Calendar.MILLISECOND, 999);
LocalDateTime monthStart = LocalDateTime.ofInstant(Instant.ofEpochMilli(cal.getTimeInMillis()), ZoneId.systemDefault());
return monthStart.format(dtf);
}
/**
* 本月开始时间
*
* @return
*/
public static String getMonthStartTime() {
Long currentTime = System.currentTimeMillis();
String timeZone = "GMT+8:00";
Calendar cal = Calendar.getInstance();// 获取当前日期
cal.setTimeZone(TimeZone.getTimeZone(timeZone));
cal.setTimeInMillis(currentTime);
cal.add(Calendar.YEAR, 0);
cal.add(Calendar.MONTH, 0);
cal.set(Calendar.DAY_OF_MONTH, 1);// 设置为1号,当前日期既为本月第一天
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
LocalDateTime monthStart = LocalDateTime.ofInstant(Instant.ofEpochMilli(cal.getTimeInMillis()), ZoneId.systemDefault());
return monthStart.format(dtf);
}
/**
* 本月结束时间
*
* @return
*/
private static String getMonthEndTime() {
Long currentTime = System.currentTimeMillis();
String timeZone = "GMT+8:00";
Calendar cal = Calendar.getInstance();// 获取当前日期
cal.setTimeZone(TimeZone.getTimeZone(timeZone));
cal.setTimeInMillis(currentTime);
cal.add(Calendar.YEAR, 0);
cal.add(Calendar.MONTH, 0);
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));// 获取当前月最后一天
cal.set(Calendar.HOUR_OF_DAY, 23);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
cal.set(Calendar.MILLISECOND, 999);
LocalDateTime monthEnd = LocalDateTime.ofInstant(Instant.ofEpochMilli(cal.getTimeInMillis()), ZoneId.systemDefault());
return monthEnd.format(dtf);
}
/**
* 上个月开始时间
*
* @return
*/
public static String getLastMonthStartTime() {
Long currentTime = System.currentTimeMillis();
String timeZone = "GMT+8:00";
Calendar cal = Calendar.getInstance();// 获取当前日期
cal.setTimeZone(TimeZone.getTimeZone(timeZone));
cal.setTimeInMillis(currentTime);
cal.add(Calendar.YEAR, 0);
cal.add(Calendar.MONTH, -1);
cal.set(Calendar.DAY_OF_MONTH, 1);// 设置为1号,当前日期既为本月第一天
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
LocalDateTime lastMonthStart = LocalDateTime.ofInstant(Instant.ofEpochMilli(cal.getTimeInMillis()), ZoneId.systemDefault());
return lastMonthStart.format(dtf);
}
/**
* 上个月结束时间
*
* @return
*/
public static String getLastMonthEndTime() {
Long currentTime = System.currentTimeMillis();
String timeZone = "GMT+8:00";
Calendar cal = Calendar.getInstance();// 获取当前日期
cal.setTimeZone(TimeZone.getTimeZone(timeZone));
cal.setTimeInMillis(currentTime);
cal.add(Calendar.YEAR, 0);
cal.add(Calendar.MONTH, -1);
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));// 获取当前月最后一天
cal.set(Calendar.HOUR_OF_DAY, 23);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
cal.set(Calendar.MILLISECOND, 999);
LocalDateTime lastMonthEnd = LocalDateTime.ofInstant(Instant.ofEpochMilli(cal.getTimeInMillis()), ZoneId.systemDefault());
return lastMonthEnd.format(dtf);
}
/**
* 本季度起开始时间
*
* @return
*/
public static String getFromThisQuarterStartTime() {
LocalDate nowDate = LocalDate.now();
Month firstMonthOfQuarter = nowDate.getMonth().firstMonthOfQuarter();
nowDate = LocalDate.of(nowDate.getYear(), firstMonthOfQuarter, 1);
LocalDateTime fromThisQuarterStart = LocalDateTime.of(nowDate, LocalTime.MIN);
return fromThisQuarterStart.format(dtf);
}
/**
* 本季度起结束时间
*
* @return
*/
public static String getFromThisQuarterEndTime() {
LocalDate nowDate = LocalDate.now();
Month firstMonthOfQuarter = nowDate.getMonth().firstMonthOfQuarter();
Month endMonthOfQuarter = Month.of(firstMonthOfQuarter.getValue() + 2);
nowDate = LocalDate.of(nowDate.getYear(), endMonthOfQuarter, endMonthOfQuarter.length(nowDate.isLeapYear()));
LocalDateTime fromThisQuarterEnd = LocalDateTime.of(nowDate, LocalTime.MAX);
return fromThisQuarterEnd.format(dtf);
}
/**
* 今年起开始时间
*
* @return
*/
public static String getFromThisYearStartTime() {
LocalDate nowDate = LocalDate.now();
LocalDate firstDayOfYear = nowDate.with(TemporalAdjusters.firstDayOfYear());
LocalDateTime fromThisYearStart = LocalDateTime.of(firstDayOfYear, LocalTime.MIN);
return fromThisYearStart.format(dtf);
}
/**
* 今年起结束时间
*
* @return
*/
public static String getFromThisYearEndTime() {
LocalDate nowDate = LocalDate.now();
LocalDate lastDayOfYear = nowDate.with(TemporalAdjusters.lastDayOfYear());
LocalDateTime fromThisYearEnd = LocalDateTime.of(lastDayOfYear, LocalTime.MAX);
return fromThisYearEnd.format(dtf);
}
}