public class DateUtils extends org.apache.commons.lang3.time.DateUtils {<!-- --> public static String YYYY = "yyyy"; public static String YYYY_MM = "yyyy-MM"; public static String YYYY_MM_DD = "yyyy-MM-dd"; public static String YYYYMMDDHHMMSS = "yyyyMMddHHmmss"; public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss"; private static String[] parsePatterns = {<!-- --> "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM", "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM", "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM"}; /** * Get the current Date type date * * @return Date() current date */ public static Date getNowDate() {<!-- --> return new Date(); } /** * Get the current date, the default format is yyyy-MM-dd * * @return String */ public static String getDate() {<!-- --> return dateTimeNow(YYYY_MM_DD); } public static final String getTime() {<!-- --> return dateTimeNow(YYYY_MM_DD_HH_MM_SS); } public static final String dateTimeNow() {<!-- --> return dateTimeNow(YYYYMMDDHHMMSS); } public static final String dateTimeNow(final String format) {<!-- --> return parseDateToStr(format, new Date()); } public static final String dateTime(final Date date) {<!-- --> return parseDateToStr(YYYY_MM_DD, date); } public static final String parseDateToStr(final String format, final Date date) {<!-- --> return new SimpleDateFormat(format).format(date); } public static final Date dateTime(final String ts, final String format) {<!-- --> try {<!-- --> return new SimpleDateFormat(format).parse(ts); } catch (ParseException e) {<!-- --> throw new RuntimeException(e); } } /** * Date path is year/month/day such as 2018/08/08 */ public static final String datePath() {<!-- --> Date now = new Date(); return DateFormatUtils. format(now, "yyyy/MM/dd"); } /** * Date path is year/month/day such as 20180808 */ public static final String dateTime() {<!-- --> Date now = new Date(); return DateFormatUtils. format(now, "yyyyMMdd"); } /** * Convert date string to date format */ public static Date parseDate(Object str) {<!-- --> if (str == null) {<!-- --> return null; } try {<!-- --> return parseDate(str.toString(), parsePatterns); } catch (ParseException e) {<!-- --> return null; } } /** * Get server startup time */ public static Date getServerStartDate() {<!-- --> long time = ManagementFactory.getRuntimeMXBean().getStartTime(); return new Date(time); } /** * Calculate the difference in days */ public static int differentDaysByMillisecond(Date date1, Date date2) {<!-- --> return Math.abs((int) ((date2.getTime() - date1.getTime()) / (1000 * 3600 * 24))); } /** * Compute the difference between two times */ public static String getDatePoor(Date endDate, Date nowDate) {<!-- --> long nd = 1000 * 24 * 60 * 60; long nh = 1000 * 60 * 60; long nm = 1000 * 60; // long ns = 1000; // Get the difference in milliseconds between two times long diff = endDate.getTime() - nowDate.getTime(); // Calculate the difference in days long day = diff / nd; // Calculate the difference in hours long hour = diff % nd / nh; // Calculate the difference in minutes long min = diff % nd % nh / nm; // Calculate the difference in seconds//Output the result // long sec = diff % nd % nh % nm / ns; return day + "day" + hour + "hour" + min + "minute"; } /** * Add LocalDateTime ==> Date */ public static Date toDate(LocalDateTime temporalAccessor) {<!-- --> ZonedDateTime zdt = temporalAccessor.atZone(ZoneId.systemDefault()); return Date.from(zdt.toInstant()); } /** * Add LocalDate ==> Date */ public static Date toDate(LocalDate temporalAccessor) {<!-- --> LocalDateTime localDateTime = LocalDateTime.of(temporalAccessor, LocalTime.of(0, 0, 0)); ZonedDateTime zdt = localDateTime. atZone(ZoneId. systemDefault()); return Date.from(zdt.toInstant()); } /** * date to string * * @param date * @param pattern * @return */ public static String format(Date date, String pattern) {<!-- --> DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern); return formatter.format(date.toInstant().atZone(ZoneId.systemDefault())); } /** * string to date * * @param date * @param pattern * @return */ public static Date dateFormat(String date, String pattern) {<!-- --> DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern); LocalDate localDate = LocalDate. parse(date, formatter); return toDate(localDate); } /** * Calculation time consuming * * @param timestamp millisecond timestamp * @return */ public static String formatDHMS(long timestamp) {<!-- --> String dayStr = MessageUtils. message("common. date. day"); String hourStr = MessageUtils. message("common. date. hour"); String minuteStr = MessageUtils. message("common. date. minute"); String secondStr = MessageUtils. message("common. date. second"); if (timestamp == 0) return "0" + secondStr; long days = timestamp / (1000 * 60 * 60 * 24); long hours = (timestamp % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60); long minutes = (timestamp % (1000 * 60 * 60)) / (1000 * 60); long seconds = (timestamp % (1000 * 60)) / 1000; if (timestamp % (1000 * 60 * 60 * 24) == 0) {<!-- --> return days + dayStr; } else if (timestamp % (1000 * 60 * 60) == 0) {<!-- --> return days + dayStr + hours + hourStr; } else if (timestamp % (1000 * 60) == 0) {<!-- --> return days + dayStr + hours + hourStr + minutes + minuteStr; } if (days > 0) {<!-- --> return days + dayStr + hours + hourStr + minutes + minuteStr + seconds + secondStr; } else if (hours > 0) {<!-- --> return hours + hourStr + minutes + minuteStr + seconds + secondStr; } else if (minutes > 0) {<!-- --> return minutes + minuteStr + seconds + secondStr; } else {<!-- --> return seconds + secondStr; } } }