From 8185e5cdc2bbdf7fb4ca46a10864106893a01ed3 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期三, 20 十一月 2024 15:30:12 +0800 Subject: [PATCH] 1 --- src/main/java/com/yssh/utils/DateUtils.java | 212 +++++++++++++++++++++++++++++++--------------------- 1 files changed, 126 insertions(+), 86 deletions(-) diff --git a/src/main/java/com/yssh/utils/DateUtils.java b/src/main/java/com/yssh/utils/DateUtils.java index 1e99ee1..5d9786c 100644 --- a/src/main/java/com/yssh/utils/DateUtils.java +++ b/src/main/java/com/yssh/utils/DateUtils.java @@ -5,13 +5,9 @@ import java.text.SimpleDateFormat; import java.util.*; +import com.yssh.config.InitConfig; import org.apache.commons.lang3.time.DateFormatUtils; -/** - * 鏃堕棿宸ュ叿绫� - * - * @author tam - */ public class DateUtils extends org.apache.commons.lang3.time.DateUtils { public static String YYYY = "yyyy"; @@ -19,34 +15,25 @@ public static String YYYY_MM_DD = "yyyy-MM-dd"; + public static String YYYYMM = "yyyyMM"; + + public static String YYYYMMDD = "yyyyMMdd"; + public static String YYYYMMDDHH = "yyyyMMddHH"; - + public static String YYYYMMDDHHMMSS = "yyyyMMddHHmmss"; public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss"; - + public static String YYYY_MM_DD_HH_MM = "yyyy-MM-dd HH:mm"; - + public static String YYYY_MM_DD_HH = "yyyy-MM-dd HH"; - - private static String[] parsePatterns = { "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM", + + 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" }; + "yyyy.MM.dd HH:mm", "yyyy.MM"}; - /** - * 鑾峰彇褰撳墠Date鍨嬫棩鏈� - * - * @return Date() 褰撳墠鏃ユ湡 - */ - public static Date getNowDate() { - return new Date(); - } - /** - * 鑾峰彇褰撳墠鏃ユ湡, 榛樿鏍煎紡涓簓yyy-MM-dd - * - * @return String - */ public static String getDate() { return dateTimeNow(YYYY_MM_DD); } @@ -60,7 +47,7 @@ } public static final String dateTimeNow(final String format) { - return parseDateToStr(format, new Date()); + return parseDateToStr(format, InitConfig.getDate()); } public static final String dateTime(final Date date) { @@ -79,6 +66,14 @@ } } + public static String getYyyyMm(Date date) { + return new SimpleDateFormat(YYYYMM).format(date); + } + + public static String getYyyyMmDd(Date date) { + return new SimpleDateFormat(YYYYMMDD).format(date); + } + public static String getYyyyMmDdHh(Date date) { return new SimpleDateFormat(YYYYMMDDHH).format(date); } @@ -91,16 +86,14 @@ * 鏃ユ湡璺緞 鍗冲勾/鏈�/鏃� 濡�2018/08/08 */ public static final String datePath() { - Date now = new Date(); - return DateFormatUtils.format(now, "yyyy/MM/dd"); + return DateFormatUtils.format(InitConfig.getDate(), "yyyy/MM/dd"); } /** * 鏃ユ湡璺緞 鍗冲勾/鏈�/鏃� 濡�20180808 */ public static final String dateTime() { - Date now = new Date(); - return DateFormatUtils.format(now, "yyyyMMdd"); + return DateFormatUtils.format(InitConfig.getDate(), "yyyyMMdd"); } /** @@ -145,38 +138,38 @@ // long sec = diff % nd % nh % nm / ns; return day + "澶�" + hour + "灏忔椂" + min + "鍒嗛挓"; } - + /** - * @Title: differHour + * @throws + * @Title: differHour * @Description: 鑾峰彇涓や釜鏃堕棿宸嚑涓皬鏃� * @param: @param endDate * @param: @param nowDate - * @param: @return - * @return: long - * @throws + * @param: @return + * @return: long */ - public static int differDay(Date startDate, Date endDate){ + public static int differDay(Date startDate, Date endDate) { long nd = 1000 * 24 * 60 * 60; long diff = endDate.getTime() - startDate.getTime(); double dd = Double.valueOf(String.valueOf(diff)) / nd; // 璁$畻宸灏戝ぉ return Double.valueOf(Math.ceil(dd)).intValue(); } - + /** * @Description: 鑾峰彇涓�娈垫椂闂撮棿闅� * @param:date 闇�瑕佹搷浣滅殑鏃堕棿瀵硅薄 - * @param:day 鎿嶄綔鐨勬椂闂撮棿闅� - * 姝f暟涓轰箣鍚庝竴娈垫椂闂� - * 璐熸暟涓轰箣鍓嶄竴娈垫椂闂� + * @param:day 鎿嶄綔鐨勬椂闂撮棿闅� + * 姝f暟涓轰箣鍚庝竴娈垫椂闂� + * 璐熸暟涓轰箣鍓嶄竴娈垫椂闂� * @param:dateType 鎿嶄綔鐨勬椂闂存椂鍒嗙澶╅�夋嫨 * 甯哥敤鏈夛細 - * Calendar.MINUTE 鍒� - * Calendar.HOUR_OF_DAY 鏃� - * Calendar.DATE 澶� - * Calendar.MONTH 鏈� + * Calendar.MINUTE 鍒� + * Calendar.HOUR_OF_DAY 鏃� + * Calendar.DATE 澶� + * Calendar.MONTH 鏈� */ - public static Date getAPeriodOfTime(Date date, int day,int dateType) { + public static Date getAPeriodOfTime(Date date, int day, int dateType) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(dateType, day); @@ -199,26 +192,24 @@ return times; } - - /** - */ - public static Map<Date, Date> segmentationDateByTimeQuantum(Date startDate, Date endDate, int timeQuantum,int dateType){ + + public static Map<Date, Date> segmentationDateByTimeQuantum(Date startDate, Date endDate, int timeQuantum, int dateType) { LinkedHashMap<Date, Date> result = new LinkedHashMap<Date, Date>(); - long startTimeMillisecond= startDate.getTime(); + long startTimeMillisecond = startDate.getTime(); long endTimeMillisecond = endDate.getTime(); Long quantumTimeMillisecond = 0L; switch (dateType) { - case Calendar.DATE: - quantumTimeMillisecond = new Integer(1000 * 60 * 60 * 24 * timeQuantum).longValue(); - break; - case Calendar.HOUR_OF_DAY: - quantumTimeMillisecond = new Integer(1000 * 60 * 60 * timeQuantum).longValue(); - break; - case Calendar.MINUTE: - quantumTimeMillisecond = new Integer(1000 * 60 * timeQuantum).longValue(); - break; - default: - break; + case Calendar.DATE: + quantumTimeMillisecond = new Integer(1000 * 60 * 60 * 24 * timeQuantum).longValue(); + break; + case Calendar.HOUR_OF_DAY: + quantumTimeMillisecond = new Integer(1000 * 60 * 60 * timeQuantum).longValue(); + break; + case Calendar.MINUTE: + quantumTimeMillisecond = new Integer(1000 * 60 * timeQuantum).longValue(); + break; + default: + break; } for (long time = startTimeMillisecond; time < endTimeMillisecond; time += quantumTimeMillisecond) { Date beginDate = new Date(time); @@ -230,32 +221,81 @@ } return result; } - - /** - * 鑾峰彇鏈湀绗竴澶� - * @return String - **/ - public static Date getMonthStart() { - Calendar cal = Calendar.getInstance(); - //cal.set(Calendar.MONTH, 3); - cal.set(Calendar.DAY_OF_MONTH, 1); - return dateTime(YYYY_MM_DD_HH_MM_SS, parseDateToStr(YYYY_MM_DD, cal.getTime()) + " 00:00:00"); - } - - /** - * 鑾峰彇鏈湀鏈�鍚庝竴澶� - * @return String - **/ - public static Date getMonthEnd() { - Calendar cal = Calendar.getInstance(); - //cal.set(Calendar.MONTH, 3); - cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH)); - return dateTime(YYYY_MM_DD_HH_MM_SS, parseDateToStr(YYYY_MM_DD, cal.getTime()) + " 23:59:59"); - } - public static void main(String[] args) { - //System.out.println(parseDateToStr(YYYY_MM_DD_HH_MM_SS, getMonthStart())); - //System.err.println(parseDateToStr(YYYY_MM_DD_HH_MM_SS, getMonthEnd())); - System.out.println(parseDateToStr(YYYY_MM_DD_HH_MM_SS, getAPeriodOfTime(getNowDate(), -7, Calendar.DATE))); + /** + * 鍓櫎鏃ユ湡鐨勬椂闂撮儴鍒� + */ + public static Date trimTime(Date date) { + Calendar cal = Calendar.getInstance(); + cal.setTime(date); + + return dateTime(YYYY_MM_DD_HH_MM_SS, parseDateToStr(YYYY_MM_DD, cal.getTime()) + " 00:00:00"); + } + + /** + * 鍘诲勾 + */ + public static Date lastYear(Date date) { + Calendar cal = Calendar.getInstance(); + cal.setTime(date); + cal.add(Calendar.YEAR, -1); + + return cal.getTime(); + } + + /** + * 鑾峰彇涓�骞翠腑鐨勭鍑犲懆 + */ + public static int getWeekOfYear(Date date) { + Calendar cal = Calendar.getInstance(); + cal.setTime(date); + + return cal.get(Calendar.WEEK_OF_YEAR); + } + + /** + * 鑾峰彇涓�骞翠腑鐨勭鍑犲懆鐨勬槦鏈熶竴 + */ + public static Date getWeekOfYearForMon(int year, int weekOfYear) { + Calendar cal = Calendar.getInstance(); + cal.set(Calendar.YEAR, year); + cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); + cal.set(Calendar.WEEK_OF_YEAR, weekOfYear); + + return cal.getTime(); + } + + /** + * 鑾峰彇涓�骞翠腑鐨勭鍑犲懆鐨勬槦鏈熸棩 + */ + public static Date getWeekOfYearForSun(int year, int weekOfYear) { + Calendar cal = Calendar.getInstance(); + cal.set(Calendar.YEAR, year); + cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); + cal.set(Calendar.WEEK_OF_YEAR, weekOfYear); + + return cal.getTime(); + } + + /** + * 鑾峰彇鏈湀绗竴澶� + **/ + public static Date getMonthStart(Date date) { + Calendar cal = Calendar.getInstance(); + // cal.set(Calendar.MONTH, 3) + cal.setTime(date); + cal.set(Calendar.DAY_OF_MONTH, 1); + return dateTime(YYYY_MM_DD_HH_MM_SS, parseDateToStr(YYYY_MM_DD, cal.getTime()) + " 00:00:00"); + } + + /** + * 鑾峰彇鏈湀鏈�鍚庝竴澶� + **/ + public static Date getMonthEnd(Date date) { + Calendar cal = Calendar.getInstance(); + // cal.set(Calendar.MONTH, 3) + cal.setTime(date); + cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH)); + return dateTime(YYYY_MM_DD_HH_MM_SS, parseDateToStr(YYYY_MM_DD, cal.getTime()) + " 23:59:59"); } } -- Gitblit v1.9.3