From 9486766c806fe1d9e082b2fd02ea1cc558f1b443 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期四, 08 五月 2025 09:21:57 +0800 Subject: [PATCH] bug修改 --- cloud-server-activity/src/main/java/com/dsh/activity/util/DateUtil.java | 339 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 339 insertions(+), 0 deletions(-) diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/util/DateUtil.java b/cloud-server-activity/src/main/java/com/dsh/activity/util/DateUtil.java new file mode 100644 index 0000000..8c70be0 --- /dev/null +++ b/cloud-server-activity/src/main/java/com/dsh/activity/util/DateUtil.java @@ -0,0 +1,339 @@ +/** + * Copyright (c) 2015-2016, Chill Zhuang 庄骞 (smallchill@163.com). + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * <p> + * http://www.apache.org/licenses/LICENSE-2.0 + * <p> + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.dsh.activity.util; + +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.time.DateFormatUtils; +import org.apache.commons.lang3.time.DateUtils; + +import java.sql.Timestamp; +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; +import java.util.Objects; +import java.util.TimeZone; + +public class DateUtil { + + private static TimeZone tz = TimeZone.getTimeZone("GMT+8"); + + /** + * 获取YYYY格式 + */ + public static String getYear() { + return formatDate(new Date(), "yyyy"); + } + + /** + * 获取YYYY格式 + */ + public static String getYear(Date date) { + return formatDate(date, "yyyy"); + } + + /** + * 获取YYYY-MM-DD格式 + */ + public static String getDay() { + return formatDate(new Date(), "yyyy-MM-dd"); + } + + /** + * 获取YYYY-MM-DD格式 + */ + public static String getDay(Date date) { + return formatDate(date, "yyyy-MM-dd"); + } + + /** + * 获取YYYYMMDD格式 + */ + public static String getDays() { + return formatDate(new Date(), "yyyyMMdd"); + } + + /** + * 获取YYYYMMDD格式 + */ + public static String getDays(Date date) { + return formatDate(date, "yyyyMMdd"); + } + + /** + * 获取YYYY-MM-DD HH:mm:ss格式 + */ + public static String getTime() { + return formatDate(new Date(), "yyyy-MM-dd HH:mm:ss"); + } + + /** + * 获取YYYY-MM-DD HH:mm:ss.SSS格式 + */ + public static String getMsTime() { + return formatDate(new Date(), "yyyy-MM-dd HH:mm:ss.SSS"); + } + + /** + * 获取YYYYMMDDHHmmss格式 + */ + public static String getAllTime() { + return formatDate(new Date(), "yyyyMMddHHmmss"); + } + + /** + * 获取YYYY-MM-DD HH:mm:ss格式 + */ + public static String getTime(Date date) { + return formatDate(date, "yyyy-MM-dd HH:mm:ss"); + } + + public static String formatDate(Date date, String pattern) { + String formatDate = null; + if (StringUtils.isNotBlank(pattern)) { + formatDate = DateFormatUtils.format(date, pattern); + } else { + formatDate = DateFormatUtils.format(date, "yyyy-MM-dd"); + } + return formatDate; + } + + /** + * 日期比较,如果s>=e 返回true 否则返回false) + * + * @author luguosui + */ + public static boolean compareDate(String s, String e) { + if (parseDate(s) == null || parseDate(e) == null) { + return false; + } + return parseDate(s).getTime() >= parseDate(e).getTime(); + } + + /** + * 格式化日期 + */ + public static Date parseDate(String date) { + return parse(date, "yyyy-MM-dd"); + } + + /** + * 格式化日期 + */ + public static Date parseTimeMinutes(String date) { + return parse(date, "yyyy-MM-dd HH:mm"); + } + + /** + * 格式化日期 + */ + public static Date parseTime(String date) { + return parse(date, "yyyy-MM-dd HH:mm:ss"); + } + + /** + * 格式化日期 + */ + public static Date parse(String date, String pattern) { + try { + if (Objects.nonNull(date)) { + return DateUtils.parseDate(date, pattern); + } + } catch (ParseException e) { + e.printStackTrace(); + } + return null; + } + + /** + * 格式化日期 + */ + public static String format(Date date, String pattern) { + return DateFormatUtils.format(date, pattern); + } + + /** + * 把日期转换为Timestamp + */ + public static Timestamp format(Date date) { + return new Timestamp(date.getTime()); + } + + /** + * 校验日期是否合法 + */ + public static boolean isValidDate(String s) { + return parse(s, "yyyy-MM-dd HH:mm:ss") != null; + } + + /** + * 校验日期是否合法 + */ + public static boolean isValidDate(String s, String pattern) { + return parse(s, pattern) != null; + } + + public static int getDiffYear(String startTime, String endTime) { + DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); + try { + int years = (int) (((fmt.parse(endTime).getTime() - fmt.parse( + startTime).getTime()) / (1000 * 60 * 60 * 24)) / 365); + return years; + } catch (Exception e) { + // 如果throw java.text.ParseException或者NullPointerException,就说明格式不对 + return 0; + } + } + + /** + * <li>功能描述:时间相减得到天数 + */ + public static long getDaySub(String beginDateStr, String endDateStr) { + long day = 0; + SimpleDateFormat format = new SimpleDateFormat( + "yyyy-MM-dd"); + Date beginDate = null; + Date endDate = null; + + try { + beginDate = format.parse(beginDateStr); + endDate = format.parse(endDateStr); + } catch (ParseException e) { + e.printStackTrace(); + } + day = (endDate.getTime() - beginDate.getTime()) / (24 * 60 * 60 * 1000); + // System.out.println("相隔的天数="+day); + + return day; + } + + /** + * 得到n天之后的日期 + */ + public static String getAfterDayDate(String days) { + int daysInt = Integer.parseInt(days); + + Calendar canlendar = Calendar.getInstance(); // java.util包 + canlendar.add(Calendar.DATE, daysInt); // 日期减 如果不够减会将月变动 + Date date = canlendar.getTime(); + + SimpleDateFormat sdfd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String dateStr = sdfd.format(date); + + return dateStr; + } + + /** + * 得到n天之后是周几 + */ + public static String getAfterDayWeek(String days) { + int daysInt = Integer.parseInt(days); + + Calendar canlendar = Calendar.getInstance(); // java.util包 + canlendar.add(Calendar.DATE, daysInt); // 日期减 如果不够减会将月变动 + Date date = canlendar.getTime(); + + SimpleDateFormat sdf = new SimpleDateFormat("E"); + String dateStr = sdf.format(date); + + return dateStr; + } + + + /** + * 得到系统日期 + * + * @return + */ + public static Date getDate() { + TimeZone.setDefault(tz); + return new Date(); + } + + /** + * 获取当前毫秒数 + * + * @return long + */ + public static long getCurMilli() { + long millisecond = 0; + Calendar cal = Calendar.getInstance(); + millisecond = cal.getTimeInMillis(); + return millisecond; + } + + /** + * 得到系统Calendar日期 + * + * @return + */ + public static Calendar getCalendar() { + TimeZone.setDefault(tz); + Calendar cal = Calendar.getInstance(); + return cal; + } + + /** + * 毫秒转日期时间 + * + * @param millisecond + * @return + */ + public static String getDateTime(long millisecond) { + if (millisecond == 0) { + millisecond = getCurMilli(); + } + SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Calendar calendar = getCalendar(); + calendar.setTimeInMillis(millisecond); + return dateformat.format(calendar.getTime()); + } + + /** + * 日期转毫秒(加分钟) + * + * @param date + * @return + */ + public static long getMillisecond_fz(String date, Integer day) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String newDate = ""; + if ("".equals(date)) { + newDate = sdf.format(DateUtil.getDate()); + } else { + newDate = getDateTime(Long.parseLong(date)); + } + Date dt = null; + try { + dt = sdf.parse(newDate); + } catch (ParseException e) { + e.printStackTrace(); + } + Calendar rightNow = Calendar.getInstance(); + rightNow.setTime(dt); + rightNow.add(Calendar.MINUTE, day); + Date dt1 = rightNow.getTime(); + return dt1.getTime(); + } + + public static Date addDay(Date paymentTime, int i) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(paymentTime); + calendar.add(Calendar.DATE, i); + return calendar.getTime(); + } +} -- Gitblit v1.7.1