日付オブジェクトを取得する
/**
* 获取日期对象 yyyy-MM-dd HH:mm:ss
*
* @param dateTime yyyy-MM-dd
* @return
*/
public static Date getDateTime(String dateTime) throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
return df.parse(dateTime);
}
現在の日付を取得する
/**
* 获取当前日期,格式:yyyy-MM-dd
*
* @return
*/
public static String getCurrentDate(String format) {
SimpleDateFormat df = new SimpleDateFormat(format);//设置日期格式
return df.format(new Date());
}
週の最初の日を取得する
/**
* 获取本周第1天
* <p>
* 每星期第一天为:星期1,最后一天为星期日
*
* @return yyyy-mm-dd
*/
public static String getMondayOfThisWeek() {
return LocalDate.now().plusWeeks(0).with(DayOfWeek.MONDAY).toString();
}
週の最後の日を取得する
/**
* 获取本周最后1天
* 每星期第一天为:星期一,最后一天为星期日
*
* @return yyyy-mm-dd
*/
public static String getWeeklastday() {
return LocalDate.now().plusWeeks(0).with(DayOfWeek.SUNDAY).toString();
}
前週の初日の時刻を取得する
/**
* 获取上周第一天的时间 yyyy-mm-dd
* 每星期第一天为:星期一,最后一天为星期日
*
* @return yyyy-mm-dd
*/
public static String getLastWeekFirstDay() {
return LocalDate.now().plusWeeks(-1).with(DayOfWeek.MONDAY).toString();
}
先週の最終日の時間を取得します
/**
* 获取上周最后一天的时间 yyyy-mm-dd
* 每星期第一天为:星期一,最后一天为星期日
*
* @return yyyy-mm-dd
*/
public static String getLastWeekEndDay() {
return LocalDate.now().plusWeeks(-1).with(DayOfWeek.SUNDAY).toString();
}
昨年の今週の開始時刻を取得します
/**
* 获取去年的本周的开始时间
*
* @return yyyy-mm-dd
*/
public static String getLastYearThisWeekFirst() {
return LocalDate.now().minusYears(1).with(DayOfWeek.MONDAY).toString();
}
昨年の今週の終了時刻を取得します
/**
* 获取去年的本周的结束时间
*
* @return yyyy-mm-dd
*/
public static String getLastYearThisWeekEnd() {
return LocalDate.now().minusYears(1).with(DayOfWeek.SUNDAY).toString();
}
月の最初の日を取得します
/**
* 获取本月第一天
*
* @return yyyy-mm-dd
*/
public static String getThisMonthFirstDay() {
return LocalDate.now().plusMonths(0).with(TemporalAdjusters.firstDayOfMonth()).toString();
}
月の最終日を取得する
/**
* 获取本月最后一天
*
* @return yyyy-mm-dd
*/
public static String getThisMonthEndDay() {
return LocalDate.now().minusMonths(0).with(TemporalAdjusters.lastDayOfMonth()).toString();
}
前月の初日を取得
/**
* 获取上月第一天
*
* @return yyyy-mm-dd
*/
public static String getLastMonthFirstDay() {
return LocalDate.now().plusMonths(-1).with(TemporalAdjusters.firstDayOfMonth()).toString();
}
月の日数を取得する
/**
* 获取本月天数
*
* @return yyyy-mm-dd
*/
public static int getThisMonthDayCount() {
return LocalDate.now().with(TemporalAdjusters.lastDayOfMonth()).getDayOfMonth();
}
前月の日数を取得する
/**
* 获取上月天数
*
* @return yyyy-mm-dd
*/
public static int getLastMonthDayCount() {
return LocalDate.now().plusMonths(-1).with(TemporalAdjusters.lastDayOfMonth()).getDayOfMonth();
}
前月の最終日を取得する
/**
* 获取上月最后一天
* DateUtils
*
* @return yyyy-mm-dd
*/
public static String getLastMonthEndDay() {
return LocalDate.now().minusMonths(1).with(TemporalAdjusters.lastDayOfMonth()).toString();
}
昨年の今月の開始時刻を取得する
/**
* 获取去年本月的开始时间
*
* @return yyyy-mm-dd
*/
public static String getLastYearMonthStartDay() {
return LocalDate.now().plusYears(-1).with(TemporalAdjusters.firstDayOfMonth()).toString();
}
昨年の今月の終了時刻を取得します
/**
* 获取去年本月的结束时间
*
* @return yyyy-mm-dd
*/
public static String getLastYearMonthEndDay() {
return LocalDate.now().plusYears(-1).with(TemporalAdjusters.lastDayOfMonth()).toString();
}
シーズンの初日を取得
/**
* 获取本季第一天
*
* @return yyyy-mm-dd
*/
public static String getThisQuarterFirstDay() {
LocalDate inputDate = LocalDate.parse(getCurrentDate());
Month month = inputDate.getMonth();
Month firstMonthOfQuarter = month.firstMonthOfQuarter();
LocalDate localDate = LocalDate.of(inputDate.getYear(), firstMonthOfQuarter, 1);
return localDate.toString();
}
四半期の最終日を取得します
/**
* 获取本季度最后一天
*
* @return yyyy-mm-dd
*/
public static String getThisQuarterEndDay() {
LocalDate inputDate = LocalDate.parse(getCurrentDate());
Month month = inputDate.getMonth();
Month firstMonthOfQuarter = month.firstMonthOfQuarter();
Month endMonthOfQuarter = Month.of(firstMonthOfQuarter.getValue() + 2);
LocalDate localDate = LocalDate.of(inputDate.getYear(), endMonthOfQuarter, endMonthOfQuarter.length(inputDate.isLeapYear()));
return localDate.toString();
}
前四半期の初日を取得
/**
* 获取上季度第一天
*
* @return yyyy-mm-dd
*/
public static String getLastQuarterFirstDay() {
Calendar startCalendar = Calendar.getInstance();
startCalendar.set(Calendar.MONTH, ((int) startCalendar.get(Calendar.MONTH) / 3 - 1) * 3);
startCalendar.set(Calendar.DAY_OF_MONTH, 1);
return DateUtils.getDateToStringStart(startCalendar.getTime(), DateFormatConstant.C_YYYY_MM_DD);
}
前四半期の最終日を取得する
/**
* 获取上季度最后一天
*
* @return yyyy-mm-dd
*/
public static String getLastQuarterEndDay() {
Calendar endCalendar = Calendar.getInstance();
endCalendar.set(Calendar.MONTH, ((int) endCalendar.get(Calendar.MONTH) / 3 - 1) * 3 + 2);
endCalendar.set(Calendar.DAY_OF_MONTH, endCalendar.getActualMaximum(Calendar.DAY_OF_MONTH));
return DateUtils.getDateToStringStart(endCalendar.getTime(), DateFormatConstant.C_YYYY_MM_DD);
}
昨年、この四半期の開始日
/**
* 去年本季度开始日期
*
* @return yyyy-mm-dd
*/
public static String getLastYearQuarterFirstDay() {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar c = Calendar.getInstance();
c.setTime(new Date());
c.add(Calendar.YEAR, -1);
LocalDate inputDate = LocalDate.parse(getDateToString(c.getTime(), DateFormatConstant.C_YYYY_MM_DD));
LocalDate localDate = LocalDate.of(inputDate.getYear(), inputDate.getMonth().firstMonthOfQuarter(), 1);
return localDate.toString();
}
この四半期の昨年の終了日
/**
* 去年本季度结束日期
*
* @return yyyy-mm-dd
*/
public static String getLastYearQuarterEndDay() {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar c = Calendar.getInstance();
c.setTime(new Date());
c.add(Calendar.YEAR, -1);
LocalDate inputDate = LocalDate.parse(getDateToString(c.getTime(), DateFormatConstant.C_YYYY_MM_DD));
Month month = inputDate.getMonth();
Month firstMonthOfQuarter = month.firstMonthOfQuarter();
Month endMonthOfQuarter = Month.of(firstMonthOfQuarter.getValue() + 2);
LocalDate localDate = LocalDate.of(inputDate.getYear(), endMonthOfQuarter, endMonthOfQuarter.length(inputDate.isLeapYear()));
return localDate.toString();
}
今年の最初の日である現在の時刻を取得します
/**
* 获取当前时间,年份第一天
*
* @return yyyy-mm-dd
*/
public static String getThisYearFirstDay() {
return LocalDate.now().plusYears(0).with(TemporalAdjusters.firstDayOfYear()).toString();
}
現在の時刻、大晦日を取得します
/**
* 获取当前时间,年份最后一天
*
* @return yyyy-mm-dd
*/
public static String getThisYearEndDay() {
return LocalDate.now().plusYears(0).with(TemporalAdjusters.lastDayOfYear()).toString();
}
昨年の初日を取得
/**
* 获取去年的第一天
*
* @return
*/
public static String getLastYearFirstDay() {
return LocalDate.now().plusYears(-1).with(TemporalAdjusters.firstDayOfYear()).toString();
}
昨年の最終日を取得
/**
* 获取去年的最后一天
* DateUtils
*
* @return
*/
public static String getLastYearEndDay() {
return LocalDate.now().plusYears(-1).with(TemporalAdjusters.lastDayOfYear()).toString();
}
n日後の日付を取得する
/**
* 得到n天之后的日期
*
* @param days
* @return yyyy-MM-dd 格式
*/
public static String getAfterDayDate(String date, int days) throws Exception {
SimpleDateFormat sdfd = new SimpleDateFormat("yyyy-MM-dd");
Date inDate = sdfd.parse(date);
Calendar canlendar = Calendar.getInstance(); // java.util包
canlendar.setTime(inDate);
canlendar.add(Calendar.DATE, days); // 日期减 如果不够减会将月变动
Date outDate = canlendar.getTime();
String dateStr = sdfd.format(outDate);
return dateStr;
}
nか月後の月を取得
/**
* 得到n个月之后的月份
*
* @param cnt
* @return
*/
public static String getAfterMonth(int cnt) {
Calendar canlendar = Calendar.getInstance(); // java.util包
canlendar.add(Calendar.MONTH, cnt); // 日期减 如果不够减会将月变动
Date date = canlendar.getTime();
SimpleDateFormat sdfd = new SimpleDateFormat("yyyyMM");
String dateStr = sdfd.format(date);
return dateStr;
}
n時間後に日付を取得する
/**
* 获取n小时之后的日期
*
* @param date
* @param hours
* @param format
* @return
* @throws Exception
*/
public static Date getAfterHourDate(Date date, int hours, String format) throws Exception {
SimpleDateFormat sdfd = new SimpleDateFormat(format);
String dateString = dateToStrLong(date, format);
Date inDate = sdfd.parse(dateString);
Calendar canlendar = Calendar.getInstance(); // java.util包
canlendar.setTime(inDate);
canlendar.add(Calendar.HOUR, hours);
Date outDate = canlendar.getTime();
String dateStr = sdfd.format(outDate);
return fomatDate(dateStr, format);
}
前日の日付を取得します
/**
* 获取前一天的日期
*
* @param timeFormat
* @return
*/
public static String getYesterdayByFormat(String timeFormat) {
return LocalDateTime.now().plusDays(-1).format(DateTimeFormatter.ofPattern(timeFormat));
}