|
|
|
@ -20,8 +20,10 @@ import cn.escheduler.common.Constants;
|
|
|
|
|
import org.slf4j.Logger; |
|
|
|
|
import org.slf4j.LoggerFactory; |
|
|
|
|
|
|
|
|
|
import java.text.ParseException; |
|
|
|
|
import java.text.SimpleDateFormat; |
|
|
|
|
import java.time.Instant; |
|
|
|
|
import java.time.LocalDateTime; |
|
|
|
|
import java.time.ZoneId; |
|
|
|
|
import java.time.format.DateTimeFormatter; |
|
|
|
|
import java.util.Calendar; |
|
|
|
|
import java.util.Date; |
|
|
|
|
|
|
|
|
@ -30,145 +32,182 @@ import java.util.Date;
|
|
|
|
|
*/ |
|
|
|
|
public class DateUtils { |
|
|
|
|
|
|
|
|
|
private static final Logger logger = LoggerFactory.getLogger(DateUtils.class); |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @return get the formatted date string for the current time |
|
|
|
|
*/ |
|
|
|
|
public static String getCurrentTime() { |
|
|
|
|
return getCurrentTime(Constants.YYYY_MM_DD_HH_MM_SS); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @param format |
|
|
|
|
* @return get the date string in the specified format of the current time |
|
|
|
|
*/ |
|
|
|
|
public static String getCurrentTime(String format) { |
|
|
|
|
return new SimpleDateFormat(format).format(new Date()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @param date |
|
|
|
|
* @param format e.g. yyyy-MM-dd HH:mm:ss |
|
|
|
|
* @return get the formatted date string |
|
|
|
|
*/ |
|
|
|
|
public static String format(Date date, String format) { |
|
|
|
|
return new SimpleDateFormat(format).format(date); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @param date |
|
|
|
|
* @return convert time to yyyy-MM-dd HH:mm:ss format |
|
|
|
|
*/ |
|
|
|
|
public static String dateToString(Date date){ |
|
|
|
|
return format(date,Constants.YYYY_MM_DD_HH_MM_SS); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @param date |
|
|
|
|
* @return convert string to date and time |
|
|
|
|
*/ |
|
|
|
|
public static Date parse(String date,String format){ |
|
|
|
|
try { |
|
|
|
|
return new SimpleDateFormat(format).parse(date); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
logger.error("error while parse date:" + date, e); |
|
|
|
|
} |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* convert date str to yyyy-MM-dd HH:mm:ss format |
|
|
|
|
* @param str |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public static Date stringToDate(String str){ |
|
|
|
|
return parse(str,Constants.YYYY_MM_DD_HH_MM_SS); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* get seconds between two dates |
|
|
|
|
* |
|
|
|
|
* @param d1 |
|
|
|
|
* @param d2 |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public static long differSec(Date d1, Date d2) { |
|
|
|
|
return (long) Math.ceil(differMs(d1, d2) / 1000.0); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* get ms between two dates |
|
|
|
|
* |
|
|
|
|
* @param d1 |
|
|
|
|
* @param d2 |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public static long differMs(Date d1, Date d2) { |
|
|
|
|
return Math.abs(d1.getTime() - d2.getTime()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* get hours between two dates |
|
|
|
|
* |
|
|
|
|
* @param d1 |
|
|
|
|
* @param d2 |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public static long diffHours(Date d1, Date d2) { |
|
|
|
|
return (long) Math.ceil(diffMin(d1, d2) / 60.0); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* get minutes between two dates |
|
|
|
|
* |
|
|
|
|
* @param d1 |
|
|
|
|
* @param d2 |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public static long diffMin(Date d1, Date d2) { |
|
|
|
|
return (long) Math.ceil(differSec(d1, d2) / 60.0); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
private static final Logger logger = LoggerFactory.getLogger(DateUtils.class); |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* <code>java.util.Date</code> to <code>java.time.LocalDateTime</code> |
|
|
|
|
* use default zone |
|
|
|
|
* @param date |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
private static LocalDateTime date2LocalDateTime(Date date) { |
|
|
|
|
return LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* <code>java.time.LocalDateTime</code> to <code>java.util.Date</code> |
|
|
|
|
* use default zone |
|
|
|
|
* @param localDateTime |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
private static Date localDateTime2Date(LocalDateTime localDateTime) { |
|
|
|
|
Instant instant = localDateTime.atZone(ZoneId.systemDefault()).toInstant(); |
|
|
|
|
return Date.from(instant); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @return get the formatted date string for the current time |
|
|
|
|
*/ |
|
|
|
|
public static String getCurrentTime() { |
|
|
|
|
return getCurrentTime(Constants.YYYY_MM_DD_HH_MM_SS); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @param format |
|
|
|
|
* @return get the date string in the specified format of the current time |
|
|
|
|
*/ |
|
|
|
|
public static String getCurrentTime(String format) { |
|
|
|
|
// return new SimpleDateFormat(format).format(new Date());
|
|
|
|
|
return LocalDateTime.now().format(DateTimeFormatter.ofPattern(format)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @param date |
|
|
|
|
* @param format e.g. yyyy-MM-dd HH:mm:ss |
|
|
|
|
* @return get the formatted date string |
|
|
|
|
*/ |
|
|
|
|
public static String format(Date date, String format) { |
|
|
|
|
// return new SimpleDateFormat(format).format(date);
|
|
|
|
|
return format(date2LocalDateTime(date), format); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @param localDateTime |
|
|
|
|
* @param format e.g. yyyy-MM-dd HH:mm:ss |
|
|
|
|
* @return get the formatted date string |
|
|
|
|
*/ |
|
|
|
|
public static String format(LocalDateTime localDateTime, String format) { |
|
|
|
|
return localDateTime.format(DateTimeFormatter.ofPattern(format)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @param date |
|
|
|
|
* @return convert time to yyyy-MM-dd HH:mm:ss format |
|
|
|
|
*/ |
|
|
|
|
public static String dateToString(Date date) { |
|
|
|
|
return format(date, Constants.YYYY_MM_DD_HH_MM_SS); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @param date |
|
|
|
|
* @return convert string to date and time |
|
|
|
|
*/ |
|
|
|
|
public static Date parse(String date, String format) { |
|
|
|
|
try { |
|
|
|
|
// return new SimpleDateFormat(format).parse(date);
|
|
|
|
|
LocalDateTime ldt = LocalDateTime.parse(date, DateTimeFormatter.ofPattern(format)); |
|
|
|
|
return localDateTime2Date(ldt); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
logger.error("error while parse date:" + date, e); |
|
|
|
|
} |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* convert date str to yyyy-MM-dd HH:mm:ss format |
|
|
|
|
* |
|
|
|
|
* @param str |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public static Date stringToDate(String str) { |
|
|
|
|
return parse(str, Constants.YYYY_MM_DD_HH_MM_SS); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* get seconds between two dates |
|
|
|
|
* |
|
|
|
|
* @param d1 |
|
|
|
|
* @param d2 |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public static long differSec(Date d1, Date d2) { |
|
|
|
|
return (long) Math.ceil(differMs(d1, d2) / 1000.0); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* get ms between two dates |
|
|
|
|
* |
|
|
|
|
* @param d1 |
|
|
|
|
* @param d2 |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public static long differMs(Date d1, Date d2) { |
|
|
|
|
return Math.abs(d1.getTime() - d2.getTime()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* get hours between two dates |
|
|
|
|
* |
|
|
|
|
* @param d1 |
|
|
|
|
* @param d2 |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public static long diffHours(Date d1, Date d2) { |
|
|
|
|
return (long) Math.ceil(diffMin(d1, d2) / 60.0); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* get minutes between two dates |
|
|
|
|
* |
|
|
|
|
* @param d1 |
|
|
|
|
* @param d2 |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public static long diffMin(Date d1, Date d2) { |
|
|
|
|
return (long) Math.ceil(differSec(d1, d2) / 60.0); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* get the date of the specified date in the days before and after |
|
|
|
|
* @param date |
|
|
|
|
* @param day |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public static Date getSomeDay(Date date, int day) { |
|
|
|
|
Calendar calendar = Calendar.getInstance(); |
|
|
|
|
calendar.setTime(date); |
|
|
|
|
calendar.add(Calendar.DATE, day); |
|
|
|
|
return calendar.getTime(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* |
|
|
|
|
* @param date |
|
|
|
|
* @param day |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public static Date getSomeDay(Date date, int day) { |
|
|
|
|
Calendar calendar = Calendar.getInstance(); |
|
|
|
|
calendar.setTime(date); |
|
|
|
|
calendar.add(Calendar.DATE, day); |
|
|
|
|
return calendar.getTime(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* compare two dates |
|
|
|
|
* |
|
|
|
|
* @param future |
|
|
|
|
* @param old |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public static boolean compare(Date future, Date old) { |
|
|
|
|
return future.getTime() > old.getTime(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* convert schedule string to date |
|
|
|
|
* @param schedule |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public static Date getScheduleDate(String schedule){ |
|
|
|
|
return stringToDate(schedule); |
|
|
|
|
} |
|
|
|
|
* |
|
|
|
|
* @param future |
|
|
|
|
* @param old |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public static boolean compare(Date future, Date old) { |
|
|
|
|
return future.getTime() > old.getTime(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* convert schedule string to date |
|
|
|
|
* |
|
|
|
|
* @param schedule |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public static Date getScheduleDate(String schedule) { |
|
|
|
|
return stringToDate(schedule); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* format time to readable |
|
|
|
|
* |
|
|
|
|
* |
|
|
|
|
* @param ms |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
@ -183,131 +222,135 @@ public class DateUtils {
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* get monday |
|
|
|
|
* |
|
|
|
|
* note: Set the first day of the week to Monday, the default is Sunday |
|
|
|
|
*/ |
|
|
|
|
public static Date getMonday(Date date) { |
|
|
|
|
Calendar cal = Calendar.getInstance(); |
|
|
|
|
|
|
|
|
|
cal.setTime(date); |
|
|
|
|
|
|
|
|
|
cal.setFirstDayOfWeek(Calendar.MONDAY); |
|
|
|
|
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); |
|
|
|
|
|
|
|
|
|
return cal.getTime(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* get sunday |
|
|
|
|
* |
|
|
|
|
* note: Set the first day of the week to Monday, the default is Sunday |
|
|
|
|
*/ |
|
|
|
|
public static Date getSunday(Date date) { |
|
|
|
|
Calendar cal = Calendar.getInstance(); |
|
|
|
|
cal.setTime(date); |
|
|
|
|
|
|
|
|
|
cal.setFirstDayOfWeek(Calendar.MONDAY); |
|
|
|
|
cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); |
|
|
|
|
|
|
|
|
|
return cal.getTime(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* get first day of month |
|
|
|
|
*/ |
|
|
|
|
public static Date getFirstDayOfMonth(Date date) { |
|
|
|
|
Calendar cal = Calendar.getInstance(); |
|
|
|
|
|
|
|
|
|
cal.setTime(date); |
|
|
|
|
cal.set(Calendar.DAY_OF_MONTH, 1); |
|
|
|
|
|
|
|
|
|
return cal.getTime(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* get first day of month |
|
|
|
|
*/ |
|
|
|
|
public static Date getSomeHourOfDay(Date date, int hours) { |
|
|
|
|
Calendar cal = Calendar.getInstance(); |
|
|
|
|
|
|
|
|
|
cal.setTime(date); |
|
|
|
|
cal.set(Calendar.HOUR_OF_DAY, cal.get(Calendar.HOUR_OF_DAY) - hours); |
|
|
|
|
cal.set(Calendar.MINUTE, 0); |
|
|
|
|
cal.set(Calendar.SECOND, 0); |
|
|
|
|
|
|
|
|
|
return cal.getTime(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* get last day of month |
|
|
|
|
*/ |
|
|
|
|
public static Date getLastDayOfMonth(Date date) { |
|
|
|
|
Calendar cal = Calendar.getInstance(); |
|
|
|
|
|
|
|
|
|
cal.setTime(date); |
|
|
|
|
|
|
|
|
|
cal.add(Calendar.MONTH, 1); |
|
|
|
|
cal.set(Calendar.DAY_OF_MONTH, 1); |
|
|
|
|
cal.add(Calendar.DAY_OF_MONTH, -1); |
|
|
|
|
|
|
|
|
|
return cal.getTime(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* return YYYY-MM-DD 00:00:00 |
|
|
|
|
* @param inputDay |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public static Date getStartOfDay(Date inputDay){ |
|
|
|
|
Calendar cal = Calendar.getInstance(); |
|
|
|
|
cal.setTime(inputDay); |
|
|
|
|
cal.set(Calendar.HOUR_OF_DAY, 0); |
|
|
|
|
cal.set(Calendar.MINUTE, 0); |
|
|
|
|
cal.set(Calendar.SECOND, 0); |
|
|
|
|
return cal.getTime(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* return YYYY-MM-DD 23:59:59 |
|
|
|
|
* @param inputDay |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public static Date getEndOfDay(Date inputDay){ |
|
|
|
|
Calendar cal = Calendar.getInstance(); |
|
|
|
|
cal.setTime(inputDay); |
|
|
|
|
cal.set(Calendar.HOUR_OF_DAY, 23); |
|
|
|
|
cal.set(Calendar.MINUTE, 59); |
|
|
|
|
cal.set(Calendar.SECOND, 59); |
|
|
|
|
return cal.getTime(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* return YYYY-MM-DD 00:00:00 |
|
|
|
|
* @param inputDay |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public static Date getStartOfHour(Date inputDay){ |
|
|
|
|
Calendar cal = Calendar.getInstance(); |
|
|
|
|
cal.setTime(inputDay); |
|
|
|
|
cal.set(Calendar.MINUTE, 0); |
|
|
|
|
cal.set(Calendar.SECOND, 0); |
|
|
|
|
return cal.getTime(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* return YYYY-MM-DD 23:59:59 |
|
|
|
|
* @param inputDay |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public static Date getEndOfHour(Date inputDay){ |
|
|
|
|
Calendar cal = Calendar.getInstance(); |
|
|
|
|
cal.setTime(inputDay); |
|
|
|
|
cal.set(Calendar.MINUTE, 59); |
|
|
|
|
cal.set(Calendar.SECOND, 59); |
|
|
|
|
return cal.getTime(); |
|
|
|
|
} |
|
|
|
|
/** |
|
|
|
|
* get monday |
|
|
|
|
* <p> |
|
|
|
|
* note: Set the first day of the week to Monday, the default is Sunday |
|
|
|
|
*/ |
|
|
|
|
public static Date getMonday(Date date) { |
|
|
|
|
Calendar cal = Calendar.getInstance(); |
|
|
|
|
|
|
|
|
|
cal.setTime(date); |
|
|
|
|
|
|
|
|
|
cal.setFirstDayOfWeek(Calendar.MONDAY); |
|
|
|
|
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); |
|
|
|
|
|
|
|
|
|
return cal.getTime(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* get sunday |
|
|
|
|
* <p> |
|
|
|
|
* note: Set the first day of the week to Monday, the default is Sunday |
|
|
|
|
*/ |
|
|
|
|
public static Date getSunday(Date date) { |
|
|
|
|
Calendar cal = Calendar.getInstance(); |
|
|
|
|
cal.setTime(date); |
|
|
|
|
|
|
|
|
|
cal.setFirstDayOfWeek(Calendar.MONDAY); |
|
|
|
|
cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); |
|
|
|
|
|
|
|
|
|
return cal.getTime(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* get first day of month |
|
|
|
|
*/ |
|
|
|
|
public static Date getFirstDayOfMonth(Date date) { |
|
|
|
|
Calendar cal = Calendar.getInstance(); |
|
|
|
|
|
|
|
|
|
cal.setTime(date); |
|
|
|
|
cal.set(Calendar.DAY_OF_MONTH, 1); |
|
|
|
|
|
|
|
|
|
return cal.getTime(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* get first day of month |
|
|
|
|
*/ |
|
|
|
|
public static Date getSomeHourOfDay(Date date, int hours) { |
|
|
|
|
Calendar cal = Calendar.getInstance(); |
|
|
|
|
|
|
|
|
|
cal.setTime(date); |
|
|
|
|
cal.set(Calendar.HOUR_OF_DAY, cal.get(Calendar.HOUR_OF_DAY) - hours); |
|
|
|
|
cal.set(Calendar.MINUTE, 0); |
|
|
|
|
cal.set(Calendar.SECOND, 0); |
|
|
|
|
|
|
|
|
|
return cal.getTime(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* get last day of month |
|
|
|
|
*/ |
|
|
|
|
public static Date getLastDayOfMonth(Date date) { |
|
|
|
|
Calendar cal = Calendar.getInstance(); |
|
|
|
|
|
|
|
|
|
cal.setTime(date); |
|
|
|
|
|
|
|
|
|
cal.add(Calendar.MONTH, 1); |
|
|
|
|
cal.set(Calendar.DAY_OF_MONTH, 1); |
|
|
|
|
cal.add(Calendar.DAY_OF_MONTH, -1); |
|
|
|
|
|
|
|
|
|
return cal.getTime(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* return YYYY-MM-DD 00:00:00 |
|
|
|
|
* |
|
|
|
|
* @param inputDay |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public static Date getStartOfDay(Date inputDay) { |
|
|
|
|
Calendar cal = Calendar.getInstance(); |
|
|
|
|
cal.setTime(inputDay); |
|
|
|
|
cal.set(Calendar.HOUR_OF_DAY, 0); |
|
|
|
|
cal.set(Calendar.MINUTE, 0); |
|
|
|
|
cal.set(Calendar.SECOND, 0); |
|
|
|
|
return cal.getTime(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* return YYYY-MM-DD 23:59:59 |
|
|
|
|
* |
|
|
|
|
* @param inputDay |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public static Date getEndOfDay(Date inputDay) { |
|
|
|
|
Calendar cal = Calendar.getInstance(); |
|
|
|
|
cal.setTime(inputDay); |
|
|
|
|
cal.set(Calendar.HOUR_OF_DAY, 23); |
|
|
|
|
cal.set(Calendar.MINUTE, 59); |
|
|
|
|
cal.set(Calendar.SECOND, 59); |
|
|
|
|
return cal.getTime(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* return YYYY-MM-DD 00:00:00 |
|
|
|
|
* |
|
|
|
|
* @param inputDay |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public static Date getStartOfHour(Date inputDay) { |
|
|
|
|
Calendar cal = Calendar.getInstance(); |
|
|
|
|
cal.setTime(inputDay); |
|
|
|
|
cal.set(Calendar.MINUTE, 0); |
|
|
|
|
cal.set(Calendar.SECOND, 0); |
|
|
|
|
return cal.getTime(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* return YYYY-MM-DD 23:59:59 |
|
|
|
|
* |
|
|
|
|
* @param inputDay |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
public static Date getEndOfHour(Date inputDay) { |
|
|
|
|
Calendar cal = Calendar.getInstance(); |
|
|
|
|
cal.setTime(inputDay); |
|
|
|
|
cal.set(Calendar.MINUTE, 59); |
|
|
|
|
cal.set(Calendar.SECOND, 59); |
|
|
|
|
return cal.getTime(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|