java日期操作對象類(獲得指定日期、日期轉換、相隔天數)。本站提示廣大學習愛好者:(java日期操作對象類(獲得指定日期、日期轉換、相隔天數))文章只能為提供參考,不一定能成為您想要的結果。以下是java日期操作對象類(獲得指定日期、日期轉換、相隔天數)正文
本文實例為年夜家分享了java日期操作對象類,獲得指定日期前一天、後一天;日期轉換;兩個日期之間相隔天數等對象類,供年夜家參考,詳細內容以下
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; public class DateUtil { /** * 取得指定日期的前一天 * * @param specifiedDay * @param format * @return * @throws Exception */ public static Date getDayBefore(Date date, String format) { Calendar c = Calendar.getInstance(); c.setTime(date); int day = c.get(Calendar.DATE); c.set(Calendar.DATE, day - 1); String dayBeforeStr = new SimpleDateFormat(format).format(c.getTime()); Date dayBefore = null; try { dayBefore = new SimpleDateFormat(format).parse(dayBeforeStr); } catch (ParseException e) { e.printStackTrace(); } return dayBefore; } /** * 取得指定日期的後一天 * * @param specifiedDay * @return */ public static Date getDayAfter(Date date, String format) { Calendar c = Calendar.getInstance(); c.setTime(date); int day = c.get(Calendar.DATE); c.set(Calendar.DATE, day + 1); String dayAfterStr = new SimpleDateFormat(format).format(c.getTime()); Date dayAfter = null; try { dayAfter = new SimpleDateFormat(format).parse(dayAfterStr); } catch (ParseException e) { e.printStackTrace(); } return dayAfter; } /** * 取得指定日期的前一天 * * @param specifiedDay * @param format * @return * @throws Exception */ public static String getSpecifiedDayBefore(String specifiedDay, String format) { // SimpleDateFormat simpleDateFormat = new // SimpleDateFormat("yyyy-MM-dd"); Calendar c = Calendar.getInstance(); Date date = null; try { date = new SimpleDateFormat("yy-MM-dd").parse(specifiedDay); } catch (ParseException e) { e.printStackTrace(); } c.setTime(date); int day = c.get(Calendar.DATE); c.set(Calendar.DATE, day - 1); String dayBefore = new SimpleDateFormat("yyyy-MM-dd").format(c.getTime()); return dayBefore; } /** * 取得指定日期的後一天 * * @param specifiedDay * @return */ public static String getSpecifiedDayAfter(String specifiedDay, String format) { Calendar c = Calendar.getInstance(); Date date = null; try { // date = new SimpleDateFormat("yy-MM-dd").parse(specifiedDay); date = new SimpleDateFormat(format).parse(specifiedDay); } catch (ParseException e) { e.printStackTrace(); } c.setTime(date); int day = c.get(Calendar.DATE); c.set(Calendar.DATE, day + 1); // String dayAfter=new // SimpleDateFormat("yyyy-MM-dd").format(c.getTime()); String dayAfter = new SimpleDateFormat(format).format(c.getTime()); return dayAfter; } /** * 將date類型准成指定format格局的字符串 * * @param day 日期 * @param format 指定格局 * @return */ public static String date2String(Date day, String format) { String dateStr = new SimpleDateFormat(format).format(day.getTime()); return dateStr; } /** * 將字符串轉成指定格局的date類型 * * @param day 日期 * @param format 指定格局 * @return */ public static Date string2Date(String dateStr,String format) { Date strDate = null; try { strDate = new SimpleDateFormat(format).parse(dateStr); } catch (ParseException e) { e.printStackTrace(); } return strDate; } /** * * @Title: DateDate2CompareValue * @Description: 兩個date類型比擬年夜小 * @param dayAfter date類型 * @param date date類型 * @param 格局化 * @return boolean * @throws */ public static boolean DateDate2CompareValue(Date dayAfter, Date date, String pattern) { SimpleDateFormat sdf = new SimpleDateFormat(pattern); try { Date d1 = sdf.parse(sdf.format(dayAfter)); Date d2 = sdf.parse(sdf.format(date)); if(d1.getTime()>=d2.getTime()){ return true; } } catch (ParseException e) { e.printStackTrace(); } return false; } /** * 比擬兩個日期年代日的年夜小 * @Title: DateCompareValue * @Description: 一個stirng一個date類型比擬年夜小 * @param date1 String類型 * @param date2 date類型 * @param @return * @return boolean * @throws */ public static boolean DateStrDateCompareValue(String date1, Date date, String pattern) { SimpleDateFormat sdf = new SimpleDateFormat(pattern); try { Date d1 = sdf.parse(date1); Date d2 = sdf.parse(sdf.format(date)); if(d1.getTime()>=d2.getTime()){ return true; } } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } return false; } /** * 比擬兩個日期年代日的年夜小 * @Title: DateStr2CompareValue * @Description: 兩個string類型比擬時光年夜小 * @param date1 * @param date2 * @return boolean * @throws */ @SuppressWarnings("unused") public static boolean DateStr2CompareValue(String date1, String date2,String pattern) { SimpleDateFormat sdf = new SimpleDateFormat(pattern); try { Date d1 = sdf.parse(date1); Date d2 = sdf.parse(date2); if(d1.getTime()>=d2.getTime()){ return true; } } catch (ParseException e) { e.printStackTrace(); } return false; } /** * * @Title: get2DateListDate * @date 2016年5月17日 下晝2:11:48 * @Description: 獲得時光以內的 相隔天數的date聚集 * @param @param preDate 開端時光 * @param @param nextDate 停止時光 * @param @param format fomat格局 * @param @return * @return List<Date> 相隔天數聚集 * @throws */ public static List<Date> get2DateListDate(String preDate, String nextDate, String format) { List<Date> list = new ArrayList<>(); if(nextDate.equals(preDate)){//開端時光 停止時光相等就直接前往 list.add(DateUtil.string2Date(preDate, format)); return list; } String nexDate = DateUtil.getSpecifiedDayAfter(preDate, format); list.add(DateUtil.string2Date(preDate, format)); list.add(DateUtil.string2Date(nexDate, format)); while (!nexDate.equals(nextDate)) { String nextnextDate = DateUtil.getSpecifiedDayAfter(nexDate, format); list.add(DateUtil.string2Date(nextnextDate, format)); nexDate = nextnextDate; } return list; } /** * * @Title: get2DateListDate * @date 2016年5月17日 下晝2:11:48 * @Description: 獲得時光以內的 相隔天數的string聚集 * @param @param preDate 開端時光 * @param @param nextDate 停止時光 * @param @param format fomat格局 * @param @return * @return List<Date> 相隔天數聚集 * @throws */ public static List<String> get2DateListDateStr(String preDate, String nextDate, String format) { List<String> list = new ArrayList<>(); if(nextDate.equals(preDate)){//假如開端時光等於停止時光那末就是統一天 list.add(preDate); return list; } String nexDate = DateUtil.getSpecifiedDayAfter(preDate, format); list.add(preDate); list.add(nexDate); while (!nexDate.equals(nextDate)) { String nextnextDate = DateUtil.getSpecifiedDayAfter(nexDate, format); list.add(nextnextDate); nexDate = nextnextDate; } return list; } /** * * @Title: get2DateListWithDate * @date 2016年5月26日 上午9:20:29 * @Description: 獲得兩個日期之間日期的 * @param @param startDate 開端日期 date類型 * @param @param endDate 停止日期 date類型 * @param @return * @return List<Date> datelist * @throws */ public static List<Date> get2DateListWithDate(Date startDate, Date endDate,String format) { List<Date> list = new ArrayList<>(); if(startDate.getTime() >endDate.getTime()){ return list; } String startDateStr = DateUtil.date2String(startDate, format); String endDateStr = DateUtil.date2String(endDate, format); if(startDateStr.equals(endDateStr)){//假如開端時光等於停止時光那末就是統一天 list.add(startDate); return list; } Date nextDate = DateUtil.getDayAfter(startDate, format); String nextDateStr = DateUtil.date2String(nextDate, format); //String endDateStr = DateUtil.date2String(endDate, format); list.add(startDate); list.add(nextDate); while (!nextDateStr.equals(endDateStr)) { String nextnextDate = DateUtil.getSpecifiedDayAfter(nextDateStr, format); list.add(DateUtil.string2Date(nextnextDate, format)); nextDateStr = nextnextDate; } return list; } public static void main(String[] args) throws Exception { /**/ String preDate = getSpecifiedDayBefore("2016-05-01", "yyyy-MM-dd"); String nextDate = getSpecifiedDayAfter("2016-05-03", "yyyy-MM-dd"); Date befroDay = getDayBefore(new Date(), "yyyy-MM-dd"); Date dateAfter = getDayAfter(new Date(), "yyyy-MM-dd"); // System.out.println("前一天:" + preDate + " 後一天:" + nextDate); // System.err.println("前一天:" +date2String( befroDay ,"yyyy-MM-dd")+ " // 後一天:" + dateAfter); String mat = "yyyy-MM-dd";// 這裡最好從數據庫中讀取 SimpleDateFormat dateTimeFormat = new SimpleDateFormat(mat); Date dd = DateUtil.getDayBefore(new Date(), mat); // Date befroDay = getDayBefore(new Date(), "yyyy-MM-dd"); String sd = date2String(befroDay, "yyyy-MM-dd"); String dateStr = dateTimeFormat.format(befroDay); // System.out.println("dateStr="+dateStr+" sd "+sd); //List<Date> listDate = get2DateListDate("2016-05-01", "2016-05-03", "yyyy-MM-dd"); //List<String> listDateStr = get2DateListDateStr("2016-05-01", "2016-05-03", "yyyy-MM-dd"); Date startDate = new Date(); Date endDate = dateTimeFormat.parse("2016-05-31"); List<Date> listDate = get2DateListWithDate(startDate,endDate,"yyyy-MM-dd"); for (int i = 0; i < listDate.size(); i++) { System.err.println(listDate.get(i)); } /*for (int i = 0; i < listDateStr.size(); i++) { //System.out.println(listDateStr.get(i)); }*/ }
以上就是本文的全體內容,願望對年夜家的進修java法式設計有所贊助。