From 98b1a0affd69bbe63223c21fdd2c404e8bedfccb Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 20 五月 2020 17:25:08 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/div' into 2.1.2 --- utils/src/main/java/org/yeshi/utils/DateUtil.java | 652 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 607 insertions(+), 45 deletions(-) diff --git a/utils/src/main/java/org/yeshi/utils/DateUtil.java b/utils/src/main/java/org/yeshi/utils/DateUtil.java index fa36db5..915a83b 100644 --- a/utils/src/main/java/org/yeshi/utils/DateUtil.java +++ b/utils/src/main/java/org/yeshi/utils/DateUtil.java @@ -2,80 +2,642 @@ import java.text.ParseException; import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; import java.util.Date; -import java.util.HashMap; -import java.util.Map; +import java.util.List; +import org.yeshi.utils.entity.DateInfo; public class DateUtil { - + public static String dateDiff(String startTime, String endTime) { - - String datatime = 0 + "澶�" + 0 + "灏忔椂" + 0 + "鍒嗛挓" ; + + String datatime = 0 + "澶�" + 0 + "灏忔椂" + 0 + "鍒嗛挓"; SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); - + try { - long ns = 1000;// 涓�绉掗挓鐨勬绉掓暟 long nm = 1000 * 60;// 涓�鍒嗛挓鐨勬绉掓暟 long nh = 1000 * 60 * 60;// 涓�灏忔椂鐨勬绉掓暟 long nd = 1000 * 24 * 60 * 60;// 涓�澶╃殑姣鏁� - + // 鑾峰緱涓や釜鏃堕棿鐨勬绉掓椂闂村樊寮� long diff = sd.parse(endTime).getTime() - sd.parse(startTime).getTime(); - + long day = diff / nd;// 璁$畻宸灏戝ぉ long hour = diff % nd / nh;// 璁$畻宸灏戝皬鏃� long min = diff % nd % nh / nm;// 璁$畻宸灏戝垎閽� - long sec = diff % nd % nh % nm / ns;// 璁$畻宸灏戠 - - //System.out.println("鏃堕棿鐩稿樊锛�" + day + "澶�" + hour + "灏忔椂" + min + "鍒嗛挓" + sec + "绉�"); - - datatime = day + "澶�" + hour + "灏忔椂" + min + "鍒嗛挓" ; - + + datatime = day + "澶�" + hour + "灏忔椂" + min + "鍒嗛挓"; + } catch (ParseException e) { - // TODO Auto-generated catch block e.printStackTrace(); } - + return datatime; } - - - public static String dateDiff2(Date startTime, Date endTime) throws Exception{ - - String datatime = 0 + "澶�" + 0 + "灏忔椂" + 0 + "鍒嗛挓" ; - - long ns = 1000;// 涓�绉掗挓鐨勬绉掓暟 + + public static String dateDiff2(Date startTime, Date endTime) throws Exception { + + String datatime = "0鍒�"; + long nm = 1000 * 60;// 涓�鍒嗛挓鐨勬绉掓暟 long nh = 1000 * 60 * 60;// 涓�灏忔椂鐨勬绉掓暟 long nd = 1000 * 24 * 60 * 60;// 涓�澶╃殑姣鏁� - + // 鑾峰緱涓や釜鏃堕棿鐨勬绉掓椂闂村樊寮� long diff = endTime.getTime() - startTime.getTime(); - long day = diff / nd;// 璁$畻宸灏戝ぉ long hour = diff % nd / nh;// 璁$畻宸灏戝皬鏃� long min = diff % nd % nh / nm;// 璁$畻宸灏戝垎閽� - - - datatime = day + "澶�" + hour + "灏忔椂" + min + "鍒嗛挓" ; - - + + if (day > 0) { + datatime = day + "澶�" + hour + "鏃�" + min + "鍒�"; + } else { + if (hour > 0) { + datatime = hour + "鏃�" + min + "鍒�"; + } else { + if (min < 0) + min = 0; + datatime = min + "鍒�"; + } + } return datatime; } - - public String transferLongToDate(String dateFormat, Long millSec) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - Date date = new Date(millSec); - return sdf.format(date); - } - public static void main(String[] args) { - long a= 1529044851008L; - Long l = new Long(a); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - Date date = new Date(l); - System.out.println(sdf.format(date)); - new DateUtil().dateDiff(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date()), sdf.format(date)); - } + public static DateInfo dateDiff3(long startTime, long endTime) throws Exception { + long nm = 1000 * 60;// 涓�鍒嗛挓鐨勬绉掓暟 + long nh = 1000 * 60 * 60;// 涓�灏忔椂鐨勬绉掓暟 + long nd = 1000 * 24 * 60 * 60;// 涓�澶╃殑姣鏁� + + // 鑾峰緱涓や釜鏃堕棿鐨勬绉掓椂闂村樊寮� + long diff = endTime - startTime; + + int day = (int) (diff / nd);// 璁$畻宸灏戝ぉ + long hour = diff % nd / nh;// 璁$畻宸灏戝皬鏃� + long minute = diff % nd % nh / nm;// 璁$畻宸灏戝垎閽� + long second = (diff / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - minute * 60); // 璁$畻宸灏戠 + + DateInfo dateInfo = new DateInfo(); + dateInfo.setDay(day); + dateInfo.setHour(hour); + dateInfo.setMinute(minute); + dateInfo.setSecond(second); + return dateInfo; + } + + public static String dateDiff4(Date startTime, Date endTime) throws Exception { + + String datatime = "0鍒�"; + + long nm = 1000 * 60;// 涓�鍒嗛挓鐨勬绉掓暟 + long nh = 1000 * 60 * 60;// 涓�灏忔椂鐨勬绉掓暟 + long nd = 1000 * 24 * 60 * 60;// 涓�澶╃殑姣鏁� + + // 鑾峰緱涓や釜鏃堕棿鐨勬绉掓椂闂村樊寮� + long diff = endTime.getTime() - startTime.getTime(); + long day = diff / nd;// 璁$畻宸灏戝ぉ + long hour = diff % nd / nh;// 璁$畻宸灏戝皬鏃� + long min = diff % nd % nh / nm;// 璁$畻宸灏戝垎閽� + + if (day > 0) { + datatime = day + "澶�"; + } else { + if (hour > 0) { + datatime = hour + "鏃�"; + } else { + if (min < 0) + min = 0; + datatime = min + "鍒�"; + } + } + return datatime; + } + + public static String dateDiff5(Date startTime, Date endTime) throws Exception { + long nm = 1000 * 60;// 涓�鍒嗛挓鐨勬绉掓暟 + long nh = 1000 * 60 * 60;// 涓�灏忔椂鐨勬绉掓暟 + long nd = 1000 * 24 * 60 * 60;// 涓�澶╃殑姣鏁� + + // 鑾峰緱涓や釜鏃堕棿鐨勬绉掓椂闂村樊寮� + long diff = endTime.getTime() - startTime.getTime(); + long day = diff / nd;// 璁$畻宸灏戝ぉ + long hour = diff % nd / nh;// 璁$畻宸灏戝皬鏃� + long min = diff % nd % nh / nm;// 璁$畻宸灏戝垎閽� + long second = (diff / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60); // 璁$畻宸灏戠 + + String datatime = ""; + if (day > 0) { + datatime = day + "澶�"; + } else if (hour > 0) { + datatime = hour + "灏忔椂"; + } else if (min > 0) { + datatime = min + "鍒嗛挓"; + } else if (second > 0) { + datatime = second + "绉�"; + } + return datatime; + } + + public static long dateDiffMin(Date startTime, Date endTime) throws Exception { + long nm = 1000 * 60;// 涓�鍒嗛挓鐨勬绉掓暟 + long nh = 1000 * 60 * 60;// 涓�灏忔椂鐨勬绉掓暟 + long nd = 1000 * 24 * 60 * 60;// 涓�澶╃殑姣鏁� + + // 鑾峰緱涓や釜鏃堕棿鐨勬绉掓椂闂村樊寮� + long diff = endTime.getTime() - startTime.getTime(); + long day = diff / nd;// 璁$畻宸灏戝ぉ + long hour = diff % nd / nh;// 璁$畻宸灏戝皬鏃� + long min = diff % nd % nh / nm + day * 24 * 60 + hour * 60;// 璁$畻宸灏戝垎閽� + return min; + } + + /** + * 閫氳繃鏃堕棿绉掓绉掓暟鍒ゆ柇涓や釜鏃堕棿鐨勯棿闅� + * + * @param date1 + * @param date2 + * @return + */ + public static int differentDaysByMillisecond(Date start, Date end) { + return (int) ((end.getTime() - start.getTime()) / (1000 * 3600 * 24)); + } + + public String transferLongToDate(String dateFormat, Long millSec) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date date = new Date(millSec); + return sdf.format(date); + } + + /** + * 楠岃瘉鏄惁灞炰簬鍚屼竴澶� + * + * @param date1 + * @param date2 + * @return + */ + public static boolean isSameDay(Date date1, Date date2) { + if (date1 != null && date2 != null) { + Calendar cal1 = Calendar.getInstance(); + cal1.setTime(date1); + Calendar cal2 = Calendar.getInstance(); + cal2.setTime(date2); + return isSameDay(cal1, cal2); + } else { + return false; + } + } + + /** + * 楠岃瘉鏄惁灞炰簬鍚屼竴澶� + * + * @param cal1 + * @param cal2 + * @return + */ + public static boolean isSameDay(Calendar cal1, Calendar cal2) { + if (cal1 != null && cal2 != null) { + return cal1.get(0) == cal2.get(0) && cal1.get(1) == cal2.get(1) && cal1.get(6) == cal2.get(6); + } else { + return false; + } + } + + /** + * 鍒ゆ柇鏄惁鍚屼竴涓湀 + * + * @param date1 + * @param date2 + * @return + */ + public static boolean isSameMonth(Date date1, Date date2) { + Calendar calendar1 = Calendar.getInstance(); + calendar1.setTime(date1); + Calendar calendar2 = Calendar.getInstance(); + calendar2.setTime(date2); + int year1 = calendar1.get(Calendar.YEAR); + int year2 = calendar2.get(Calendar.YEAR); + int month1 = calendar1.get(Calendar.MONTH); + int month2 = calendar2.get(Calendar.MONTH); + System.out.println(year1 + " " + month1); + System.out.println(year2 + " " + month2); + return calendar1.get(Calendar.YEAR) == calendar2.get(Calendar.YEAR) + && calendar1.get(Calendar.MONTH) == calendar2.get(Calendar.MONTH); + } + + /** + * 鎸囧畾鏃ユ湡鍔犱笂澶╂暟鍚庣殑鏃ユ湡 + * + * @param num 澧炲姞鐨勫ぉ鏁� + * @param nowDate 鍒涘缓鏃堕棿 + * @return + * @throws ParseException + */ + public static String plusDay(int num, String nowDate) throws ParseException { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + Date currdate = format.parse(nowDate); + + Calendar ca = Calendar.getInstance(); + ca.setTime(currdate); + ca.add(Calendar.DATE, num); + + return format.format(ca.getTime()); + } + + /** + * 鎸囧畾鏃ユ湡鍔犱笂澶╂暟鍚庣殑鏃ユ湡 + * + * @param num 澧炲姞鐨勫ぉ鏁� + * @param nowDate 鍒涘缓鏃堕棿 + * @return + * @throws ParseException + */ + public static Date plusDayReturnDate(int num, String nowDate) throws ParseException { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + Date currdate = format.parse(nowDate); + Calendar ca = Calendar.getInstance(); + ca.setTime(currdate); + ca.add(Calendar.DATE, num); + return ca.getTime(); + } + + /** + * 鎸囧畾鏃ユ湡鍔犱笂澶╂暟鍚庣殑鏃ユ湡 + * + * @param num 澧炲姞鐨勫ぉ鏁� + * @param nowDate 鍒涘缓鏃堕棿 + * @return + * @throws ParseException + */ + public static String plusDay(int num, Date currdate) throws ParseException { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + + Calendar ca = Calendar.getInstance(); + ca.setTime(currdate); + ca.add(Calendar.DATE, num); + + return format.format(ca.getTime()); + } + + /** + * 鎸囧畾鏃ユ湡鍔犱笂澶╂暟鍚庣殑鏃ユ湡 + * + * @param num 澧炲姞鐨勫ぉ鏁� + * @param nowDate 鍒涘缓鏃堕棿 + * @return + * @throws ParseException + */ + public static Date plusDayDate(int num, Date currdate) { + Calendar ca = Calendar.getInstance(); + ca.setTime(currdate); + ca.add(Calendar.DATE, num); + return ca.getTime(); + } + + /** + * 鍔犱笂鏈堜唤 + * + * @param currdate + * @param num + * @return + */ + public static Date plusMonths(Date currdate, int num) { + Calendar ca = Calendar.getInstance(); + ca.setTime(currdate); + ca.add(Calendar.MONTH, num); + return ca.getTime(); + } + + /** + * 鍔犱笂骞翠唤 + * + * @param currdate + * @param num + * @return + */ + public static Date plusYears(Date currdate, int num) { + Calendar ca = Calendar.getInstance(); + ca.setTime(currdate); + ca.add(Calendar.YEAR, num); + return ca.getTime(); + } + + /** + * 鍑忓幓鏈堜唤 + * + * @param currdate + * @param num + * @return + */ + public static Date reduceMonth(Date currdate, int num) { + Calendar ca = Calendar.getInstance(); + ca.setTime(currdate); + ca.add(Calendar.MONTH, -num); + return ca.getTime(); + } + + public static Date reduceDay(Date currdate, int num) { + Calendar ca = Calendar.getInstance(); + ca.setTime(currdate); + ca.add(Calendar.DATE, -num); + return ca.getTime(); + } + + /** + * 鎸囧畾鏃ユ湡鍑忓幓澶╂暟鍚庣殑鏃ユ湡 + * + * @param num 鍑忓幓鐨勫ぉ鏁� + * @param nowDate 鍒涘缓鏃堕棿 + * @return + * @throws ParseException + */ + public static String reduceDay(int num, String nowDate) throws ParseException { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + Date currdate = format.parse(nowDate); + + Calendar ca = Calendar.getInstance(); + ca.setTime(currdate); + ca.add(Calendar.DATE, -num); // 鏃ユ湡鍑� 濡傛灉涓嶅鍑忎細灏嗘湀鍙樺姩 + + return format.format(ca.getTime()); + } + + /** + * 鎸囧畾鏃ユ湡鍑忓幓澶╂暟鍚庣殑鏃ユ湡 + * + * @param num 鍑忓幓鐨勫ぉ鏁� + * @param nowDate 鍒涘缓鏃堕棿 + * @return + * @throws ParseException + */ + public static String reduceDay2(int num, Date date) throws ParseException { + // 璁剧疆瑕佽幏鍙栧埌浠�涔堟牱鐨勬椂闂� + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + // 鑾峰彇String绫诲瀷鐨勬椂闂� + String date_str = format.format(date); + Date currdate = format.parse(date_str); + + Calendar ca = Calendar.getInstance(); + ca.setTime(currdate); + ca.add(Calendar.DATE, -num); // 鏃ユ湡鍑� 濡傛灉涓嶅鍑忎細灏嗘湀鍙樺姩 + + return format.format(ca.getTime()); + } + + /** + * 鎸囧畾鏃ユ湡鍑忓幓澶╂暟鍚庣殑鏃ユ湡 + * + * @param num 鍑忓幓鐨勫ぉ鏁� + * @param nowDate 鍒涘缓鏃堕棿 + * @return + * @throws ParseException + */ + public static Date reduceDay(int num, Date date) throws ParseException { + // 璁剧疆瑕佽幏鍙栧埌浠�涔堟牱鐨勬椂闂� + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + // 鑾峰彇String绫诲瀷鐨勬椂闂� + String date_str = format.format(date); + Date currdate = format.parse(date_str); + + Calendar ca = Calendar.getInstance(); + ca.setTime(currdate); + ca.add(Calendar.DATE, -num); // 鏃ユ湡鍑� 濡傛灉涓嶅鍑忎細灏嗘湀鍙樺姩 + + return ca.getTime(); + } + + /** + * 鎸囧畾鏃ユ湡鍑忓幓澶╂暟鍚庣殑鏃ユ湡 + * + * @param num 鍑忓幓鐨勫ぉ鏁� + * @param nowDate 鍒涘缓鏃堕棿 + * @return + * @throws ParseException + */ + public static String reduceDayTostring(int num, Date date) throws ParseException { + // 璁剧疆瑕佽幏鍙栧埌浠�涔堟牱鐨勬椂闂� + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + // 鑾峰彇String绫诲瀷鐨勬椂闂� + String date_str = format.format(date); + Date currdate = format.parse(date_str); + + Calendar ca = Calendar.getInstance(); + ca.setTime(currdate); + ca.add(Calendar.DATE, -num); // 鏃ユ湡鍑� 濡傛灉涓嶅鍑忎細灏嗘湀鍙樺姩 + return format.format(ca.getTime()); + } + + /** + * 璁$畻涓や釜鏃ユ湡涔嬮棿鐩稿樊鐨勫ぉ鏁� + * + * @param smdate 杈冨皬鐨勬椂闂� + * @param bdate 杈冨ぇ鐨勬椂闂� + * @return 鐩稿樊澶╂暟 + * @throws ParseException calendar 瀵规棩鏈熻繘琛屾椂闂存搷浣� getTimeInMillis() 鑾峰彇鏃ユ湡鐨勬绉掓樉绀哄舰寮� + */ + public static int daysBetween(Date minDate, Date maxDate) throws ParseException { + Calendar cal = Calendar.getInstance(); + cal.setTime(minDate); + long minTime = cal.getTimeInMillis(); + cal.setTime(maxDate); + long maxTime = cal.getTimeInMillis(); + long between_days = (maxTime - minTime) / (1000 * 3600 * 24); + return Integer.parseInt(String.valueOf(between_days)); + } + + /** + * 瀛楃涓叉棩鏈熸牸寮忕殑璁$畻 + * + * @param smdate + * @param bdate + * @return 鍗曚綅澶╂暟 + * @throws ParseException + */ + public static int daysBetween2(Date minDate, Date maxDate) throws ParseException { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + return daysBetween(sdf.format(minDate), sdf.format(maxDate)); + } + + /** + * 瀛楃涓叉棩鏈熸牸寮忕殑璁$畻 + * + * @param smdate + * @param bdate + * @return + * @throws ParseException + */ + public static int daysBetween(String minDate, String maxDate) throws ParseException { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Calendar cal = Calendar.getInstance(); + cal.setTime(sdf.parse(minDate)); + long minTime = cal.getTimeInMillis(); + cal.setTime(sdf.parse(maxDate)); + long maxTime = cal.getTimeInMillis(); + long between_days = (maxTime - minTime) / (1000 * 3600 * 24); + return Integer.parseInt(String.valueOf(between_days)); + } + + /** + * 杩斿洖涓棿鏃ユ湡 + * + * @param startTime + * @param endTime + * @return + * @throws Exception + */ + public static List<String> dayFactory(String startTime, String endTime) throws Exception { + + List<String> listDate = new ArrayList<String>(); + + String plusDay = ""; + for (int i = 0; i < 1000; i++) { + if (i == 0) { + plusDay = startTime; + } else { + plusDay = DateUtil.plusDay(i, startTime); + } + + listDate.add(plusDay); + + if (plusDay.equals(endTime)) { + break; // 鏃堕棿缁撴潫 + } + } + return listDate; + } + + /** + * 闅忔満鍑忓幓鍑犲垎閽� + * + * @param date + * @param min 闅忔満娣诲姞鐨勫垎閽熸暟 + * @return + */ + public static Date reduceRandomMinute(Date date, int min) { + long rand = (long) (Math.random() * 1000 * 60 * min); + long time = date.getTime() - rand; + return new Date(time); + } + + /** + * 璁$畻涓ゆ椂闂存湀宸� + * + * @param startDate <String> + * @param endDate <String> + * @return int + * @throws ParseException + */ + public static int getMonthSpace(String startDate, String endDate) throws ParseException { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM"); + return getMonthSpace(sdf.parse(startDate), sdf.parse(endDate)); + } + + /** + * 璁$畻涓ゆ椂闂存湀宸� + * + * @param startDate <String> + * @param endDate <String> + * @return int + * @throws ParseException + */ + public static int getMonthSpace(Date startDate, Date endDate) { + Calendar start = Calendar.getInstance(); + Calendar end = Calendar.getInstance(); + start.setTime(startDate); + end.setTime(endDate); + int result = end.get(Calendar.MONTH) - start.get(Calendar.MONTH); + int month = (end.get(Calendar.YEAR) - start.get(Calendar.YEAR)) * 12; + return Math.abs(month + result); + } + + public static Date getTodayStartTime() { + Calendar todayStart = Calendar.getInstance(); + todayStart.set(Calendar.HOUR_OF_DAY, 0); + todayStart.set(Calendar.MINUTE, 0); + todayStart.set(Calendar.SECOND, 0); + todayStart.set(Calendar.MILLISECOND, 0); + return todayStart.getTime(); + } + + public static Date getTodayEndTime() { + Calendar todayEnd = Calendar.getInstance(); + todayEnd.set(Calendar.HOUR_OF_DAY, 23); + todayEnd.set(Calendar.MINUTE, 59); + todayEnd.set(Calendar.SECOND, 59); + todayEnd.set(Calendar.MILLISECOND, 999); + return todayEnd.getTime(); + } + + /** + * 鑾峰彇鎸囧畾骞存湀鐨勭涓�澶� + * + * @param yearMonth + * @return + */ + public static String getFirstDayOfMonth(String yearMonth) { + int year = Integer.parseInt(yearMonth.split("-")[0]); // 骞� + int month = Integer.parseInt(yearMonth.split("-")[1]); // 鏈� + return getFirstDayOfMonth(year, month); + } + + /** + * 鑾峰彇鎸囧畾骞存湀鐨勭涓�澶� + * + * @param year + * @param month + * @return + */ + public static String getFirstDayOfMonth(int year, int month) { + Calendar cal = Calendar.getInstance(); + // 璁剧疆骞翠唤 + cal.set(Calendar.YEAR, year); + // 璁剧疆鏈堜唤 + cal.set(Calendar.MONTH, month - 1); + // 鑾峰彇鏌愭湀鏈�灏忓ぉ鏁� + int firstDay = cal.getMinimum(Calendar.DATE); + // 璁剧疆鏃ュ巻涓湀浠界殑鏈�灏忓ぉ鏁� + cal.set(Calendar.DAY_OF_MONTH, firstDay); + // 鏍煎紡鍖栨棩鏈� + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + return sdf.format(cal.getTime()); + } + + /** + * 鑾峰彇鎸囧畾骞存湀鐨勬渶鍚庝竴澶� + * + * @param yearMonth + * @return + */ + public static String getLastDayOfMonth(String yearMonth) { + int year = Integer.parseInt(yearMonth.split("-")[0]); // 骞� + int month = Integer.parseInt(yearMonth.split("-")[1]); // 鏈� + return getLastDayOfMonth(year, month); + } + + /** + * 鑾峰彇鎸囧畾骞存湀鐨勬渶鍚庝竴澶� + * + * @param year + * @param month + * @return + */ + public static String getLastDayOfMonth(int year, int month) { + Calendar cal = Calendar.getInstance(); + // 璁剧疆骞翠唤 + cal.set(Calendar.YEAR, year); + // 璁剧疆鏈堜唤 + cal.set(Calendar.MONTH, month - 1); + // 鑾峰彇鏌愭湀鏈�澶уぉ鏁� + int lastDay = cal.getActualMaximum(Calendar.DATE); + // 璁剧疆鏃ュ巻涓湀浠界殑鏈�澶уぉ鏁� + cal.set(Calendar.DAY_OF_MONTH, lastDay); + // 鏍煎紡鍖栨棩鏈� + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + return sdf.format(cal.getTime()); + } + + public static void main(String[] args) throws ParseException { + System.out.println(getMonthSpace("2012-02", "2012-02")); + } + } \ No newline at end of file -- Gitblit v1.8.0