/** * 取得前一天的日期 * * @return */ public static String getStringDate() { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar cal = Calendar.getInstance(); // 取得当前日期的前一天 cal.add(Calendar.HOUR_OF_DAY, -24); return sdf.format(cal.getTime()); } /** * 当前月的上个月的第一天 * * @return */ public static String getPreviousMonthFirst() { String str = ""; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar lastDate = Calendar.getInstance(); // 设为当前月的1号 lastDate.set(Calendar.DATE, 1); // 减一个月,变为上月的1号 lastDate.add(Calendar.MONTH, -1); str = sdf.format(lastDate.getTime()); return str; } /** * 当前月的上个月的最后一天 * * @return */ public static String getPreviousMonthEnd() { String str = ""; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar lastDate = Calendar.getInstance(); // 减一个月 lastDate.add(Calendar.MONTH, -1); // 把日期设置为当月第一天 lastDate.set(Calendar.DATE, 1); // 日期回滚一天,也就是上个月最后一天 lastDate.roll(Calendar.DATE, -1); str = sdf.format(lastDate.getTime()); return str; } /** * 取得指定时间的前count个月的第一天 * * @return */ public static String getPreviousMonthFirst(Date date, String format, int count) { SimpleDateFormat sdf = new SimpleDateFormat(format); Calendar lastDate = Calendar.getInstance(); lastDate.setTime(date); // 设为当前月的1号 lastDate.set(Calendar.DATE, 1); // 减一个月,变为上月的1号 lastDate.add(Calendar.MONTH, count); return sdf.format(lastDate.getTime()); } /** * 取得指定时间的前count个月最后一天 * * @return */ public static String getPreviousMonthEnd(Date date, String format, int count) { SimpleDateFormat sdf = new SimpleDateFormat(format); Calendar lastDate = Calendar.getInstance(); lastDate.setTime(date); // 减count个月 lastDate.add(Calendar.MONTH, count); // 把日期设置为当月第一天 lastDate.set(Calendar.DAY_OF_MONTH, 1); // 日期回滚一天,也就是上个月最后一天 lastDate.roll(Calendar.DAY_OF_MONTH, -1); return sdf.format(lastDate.getTime()); } /** * 将Date转换成String * * @param date * @return */ public static String getStringDate(Date date) { // 日期格式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); return sdf.format(date); } /** * 将Date转换成String * * @param date * @param format * @return */ public static String getStringDate(Date date, String format) { // 日期格式 SimpleDateFormat sdf = new SimpleDateFormat(format); return sdf.format(date); } /** * 字符转成日期 * * @param dateString * @return * @throws ParseException */ public static Date getDate(String dateString) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); try { return sdf.parse(dateString); } catch (ParseException e) { e.printStackTrace(); return null; } } /** * 字符转成日期 * * @param dateString * @param format * @return * @throws ParseException */ public static Date getDate(String dateString, String format) { SimpleDateFormat sdf = new SimpleDateFormat(format); try { return sdf.parse(dateString); } catch (ParseException e) { e.printStackTrace(); return null; } } /** * 得到以当天时间为基础的指定日期 * * @param field * <Calendar.HOUR_OF_DAY> * @param amount * <-24> 例 Calendar.HOUR_OF_DAY, -24 * @return */ public static Date getLatestDate(int field, int amount) { Calendar calendar = Calendar.getInstance(); calendar.add(field, amount); return calendar.getTime(); } /** * 取得两个时间段的时间间隔天数 * * @param t1时间1 * @param t2时间2 * @return t2 与t1的间隔天数 */ public static int getBetweenDays(String t1, String t2) { int betweenDays = 0; try { DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Date d1 = format.parse(t1); Date d2 = format.parse(t2); Calendar c1 = Calendar.getInstance(); Calendar c2 = Calendar.getInstance(); c1.setTime(d1); c2.setTime(d2); // 保证第二个时间一定大于第一个时间 if (c1.after(c2)) { c1 = c2; c2.setTime(d1); } int betweenYears = c2.get(Calendar.YEAR) - c1.get(Calendar.YEAR); betweenDays = c2.get(Calendar.DAY_OF_YEAR) - c1.get(Calendar.DAY_OF_YEAR); for (int i = 0; i < betweenYears; i++) { c1.set(Calendar.YEAR, (c1.get(Calendar.YEAR) + 1)); betweenDays += c1.getMaximum(Calendar.DAY_OF_YEAR); } return betweenDays; } catch (ParseException e) { e.printStackTrace(); return 0; } } /** * 取得两个时间段的时间间隔月数 * * @param t1时间1 * @param t2时间2 * @return t2 与t1的间隔天数 */ public static int getBetweenMonths(String t1, String t2) { int betweenDays = 0; try { DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Date d1 = format.parse(t1); Date d2 = format.parse(t2); Calendar c1 = Calendar.getInstance(); Calendar c2 = Calendar.getInstance(); c1.setTime(d1); c2.setTime(d2); // 保证第二个时间一定大于第一个时间 if (c1.after(c2)) { c1 = c2; c2.setTime(d1); } int betweenYears = c2.get(Calendar.YEAR) - c1.get(Calendar.YEAR); betweenDays = c2.get(Calendar.MONTH) - c1.get(Calendar.MONTH); for (int i = 0; i < betweenYears; i++) { c1.set(Calendar.YEAR, (c1.get(Calendar.YEAR) + 1)); betweenDays += c1.getMaximum(Calendar.MONTH); } // 因为统计到年和月之间的总月数,需要+1 return betweenDays + 1; } catch (ParseException e) { e.printStackTrace(); return 0; } } /** * 返回指定日期格式的日期增加指定天数的日期 * * @param appDate指定日期 * @param format指定日期格式 * @param days指定天数 * @return 指定日期格式的日期增加指定天数的日期 */ public static String getFutureDay(String appDate, String format, int days) { String future = null; try { Calendar calendar = Calendar.getInstance(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format); Date date = simpleDateFormat.parse(appDate); calendar.setTime(date); calendar.add(Calendar.DATE, days); date = calendar.getTime(); future = simpleDateFormat.format(date); } catch (Exception e) { future = null; e.printStackTrace(); } return future; } /** * 返回当前日期的前count个月的日期 * * @param count倒退的月数 * @param format格式 * @return */ public static String getPastMonthDay(int count, String format) { Calendar calendar = Calendar.getInstance(); Date now = new Date(); SimpleDateFormat sdf = new SimpleDateFormat(format); calendar.add(Calendar.MONTH, -count); now = calendar.getTime(); return sdf.format(now); }
date格式化
猜你喜欢
转载自jw-long.iteye.com/blog/1270785
今日推荐
周排行