Date转String
/** * jdk1.8 * @param date 时间 * @param pattern 日期格式 * @return */ public static String getDateToString(Date date, String pattern) { if (StringUtils.isBlank(date) || StringUtils.isBlank(pattern)) { return ""; } //设置字符串格式 SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern); return simpleDateFormat.format(date); }
String转Date
/** * 将短时间格式字符串转换为时间 yyyy-MM-dd * * @param strDate * @return */ public static Date strToDate(String strDate,String pattern) { SimpleDateFormat formatter = new SimpleDateFormat(pattern); ParsePosition pos = new ParsePosition(0); Date strtodate = formatter.parse(strDate, pos); return strtodate; }
获取当前日期,格式:yyyy-MM-dd
/** * jdk1.8 * 获取当前日期,格式:yyyy-MM-dd * * @return */ public static String getCurrentDate() { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式 return df.format(new Date()); }
获取当前时间,格式:yyyy-MM-dd HH:mm:ss
/** * 获取当前时间,格式:yyyy-MM-dd HH:mm:ss * * @return */ public static String getCurrentTime() { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式 return df.format(new Date()); }
获取当前日期(指定格式)
/** * 获取当前日期(指定格式) * @param format 日期格式 * @return */ public static String getCurrentDate(String format) { SimpleDateFormat df = new SimpleDateFormat(format);//设置日期格式 return df.format(new Date()); }
获取当前小时(24小时制)
/** * 获取当前小时(24小时制) * * @return */ public static int getCurrentHour() { Calendar calendar = Calendar.getInstance(); return calendar.get(Calendar.HOUR_OF_DAY); }
获取当前(月份)日期
/** * 获取当前(月份)日期 * * @return */ public static int getCurrentDayOfMonth() { Calendar calendar = Calendar.getInstance(); return calendar.get(Calendar.DAY_OF_MONTH); }
获取当前(星期)日期(星期一为第一天)
/** * 获取当前(星期)日期(星期一为第一天) * * @return */ public static int getCurrentDayOfWeek() { Calendar calendar = Calendar.getInstance(); int day = calendar.get(Calendar.DAY_OF_WEEK); if(day == 1){ return 7; }else{ return (day - 1); } }
获取当前月份(年)
/** * 获取当前月份(年) * * @return */ public static int getCurrentMonthOfYear() { Calendar calendar = Calendar.getInstance(); return calendar.get(Calendar.MONTH)+1; }
获取本月所在季度的月份
/** * 获取本月所在季度的月份 * * @return */ public static int getCurrentMonthOfQuarter() { int month = getCurrentMonthOfYear(); int qm = month%3; if(qm == 0){ qm = 3; } return qm; }
获取日期对象 yyyy-MM-dd
/** * 获取日期对象 * @param date yyyy-MM-dd * @return */ public static Date getDate(String date) throws Exception{ SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式 return df.parse(date); }
获取日期对象yyyy-MM-dd HH:mm:ss
/** * 获取日期对象yyyy-MM-dd HH:mm:ss * @param date yyyy-MM-dd HH:mm:ss * @return */ public static Date getDateTime(String dateTime) throws Exception{ SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式 return df.parse(dateTime); }
得到n个月之后的月份
/** * 得到n个月之后的月份 * @param days * @return */ public static String getAfterMonth(int cnt) { Calendar canlendar = Calendar.getInstance(); // java.util包 canlendar.add(Calendar.MONTH, cnt); // 日期减 如果不够减会将月变动 Date date = canlendar.getTime(); SimpleDateFormat sdfd = new SimpleDateFormat("yyyyMM"); String dateStr = sdfd.format(date); return dateStr; }
得到n天之后的日期
/** * 得到n天之后的日期 * @param days * @return */ public static String getAfterMonthDate(String date, int cnt) throws Exception{ SimpleDateFormat sdfd = new SimpleDateFormat("yyyy-MM-dd"); Date inDate = sdfd.parse(date); Calendar canlendar = Calendar.getInstance(); // java.util包 canlendar.setTime(inDate); canlendar.add(Calendar.MONTH, cnt); Date outDate = canlendar.getTime(); String dateStr = sdfd.format(outDate); return dateStr; }
时间相减得到天数
/** * 功能描述:时间相减得到天数 * @param beginDateStr 开始时间 * @param endDateStr 结束时间 * @return */ public static long getDaySub(String beginDateStr,String endDateStr){ long day=0; SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); java.util.Date beginDate = null; java.util.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; }
获取日期年份
/** * 获取日期年份 * @return */ public static int getYear(String date) { if(StringUtils.isEmpty(date) && date.length() >= 4){ return 0; } return Integer.parseInt(date.substring(0, 4)); }
获取日期月份
/** * 获取日期月份 * @param date yyyy-MM-dd格式 * @return */ public static int getMonth(String date) { if(StringUtils.isEmpty(date) && date.length() >= 7){ return 0; } return Integer.parseInt(date.substring(5, 7)); }
获取日期所在年份的第几周
/** * 获取日期所在年份的第几周 * @param date yyyy-MM-dd格式 * @return */ public static int getWeekOfYear(String date) throws Exception{ if(StringUtils.isEmpty(date)){ return 0; } SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date inDate = sdf.parse(date); Calendar canlendar = Calendar.getInstance(); // java.util包 canlendar.setTime(inDate); return canlendar.get(Calendar.WEEK_OF_YEAR); }
周数时间工具
获取本周第1天
/** * jdk1.8 * 获取本周第1天 * <p> * 每星期第一天为:星期1,最后一天为星期日 * * @return yyyy-mm-dd */ public static String getMondayOfThisWeek() { return LocalDate.now().plusWeeks(0).with(DayOfWeek.MONDAY).toString(); }
获取本周最后1天
/** *jdk1.8 * 获取本周最后1天 * 每星期第一天为:星期一,最后一天为星期日 * * @return yyyy-mm-dd */ public static String getWeeklastday() { return LocalDate.now().plusWeeks(0).with(DayOfWeek.SUNDAY).toString(); }
获取上周第一天的时间
/** * jdk1.8 * 获取上周第一天的时间 yyyy-mm-dd * 每星期第一天为:星期一,最后一天为星期日 * * @return yyyy-mm-dd */ public static String getLastWeekFirstDay() { return LocalDate.now().plusWeeks(-1).with(DayOfWeek.MONDAY).toString(); }
获取上周最后一天的时间
/** * jdk1.8 * 获取上周最后一天的时间 yyyy-mm-dd * 每星期第一天为:星期一,最后一天为星期日 * * @return yyyy-mm-dd */ public static String getLastWeekEndDay() { return LocalDate.now().plusWeeks(-1).with(DayOfWeek.SUNDAY).toString(); }
获取去年的本周的开始时间
/** * jdk1.8 * 获取去年的本周的开始时间 * * @return yyyy-mm-dd */ public static String getLastYearThisWeekFirst() { return LocalDate.now().minusYears(1).with(DayOfWeek.MONDAY).toString(); }
获取去年的本周的结束时间
/** * jdk1.8 * 获取去年的本周的结束时间 * * @return yyyy-mm-dd */ public static String getLastYearThisWeekEnd() { return LocalDate.now().minusYears(1).with(DayOfWeek.SUNDAY).toString(); }
月数时间工具
获取本月第一天
/** * jdk1.8 * 获取本月第一天 * * @return yyyy-mm-dd */ public static String getThisMonthFirstDay() { return LocalDate.now().plusMonths(0).with(TemporalAdjusters.firstDayOfMonth()).toString(); }
获取本月最后一天
/** * jdk1.8 * 获取本月最后一天 * * @return yyyy-mm-dd */ public static String getThisMonthEndDay() { return LocalDate.now().minusMonths(0).with(TemporalAdjusters.lastDayOfMonth()).toString(); }
获取上月第一天
/** * jdk1.8 * 获取上月第一天 * * @return yyyy-mm-dd */ public static String getLastMonthFirstDay() { return LocalDate.now().plusMonths(-1).with(TemporalAdjusters.firstDayOfMonth()).toString(); }
获取上月最后一天
/** * jdk1.8 * 获取上月最后一天 * DateUtils * * @return yyyy-mm-dd */ public static String getLastMonthEndDay() { return LocalDate.now().minusMonths(1).with(TemporalAdjusters.lastDayOfMonth()).toString(); }
获取本月天数
/** * jdk1.8 * 获取本月天数 * * @return yyyy-mm-dd */ public static int getThisMonthDayCount() { return LocalDate.now().with(TemporalAdjusters.lastDayOfMonth()).getDayOfMonth(); }
获取上月天数
/** * jdk1.8 * 获取上月天数 * * @return yyyy-mm-dd */public static int getLastMonthDayCount() { return LocalDate.now().plusMonths(-1).with(TemporalAdjusters.lastDayOfMonth()).getDayOfMonth(); }
获取去年本月的开始时间
/** * jdk1.8 * 获取去年本月的开始时间 * * @return yyyy-mm-dd */ public static String getLastYearMonthStartDay() { return LocalDate.now().plusYears(-1).with(TemporalAdjusters.firstDayOfMonth()).toString(); }
获取去年本月的结束时间
/** * jdk1.8 * 获取去年本月的结束时间 * * @return yyyy-mm-dd */ public static String getLastYearMonthEndDay() { return LocalDate.now().plusYears(-1).with(TemporalAdjusters.lastDayOfMonth()).toString(); }
季度时间工具
获取本季第一天
/** * jdk1.8 * 获取本季第一天 * * @return yyyy-mm-dd */ public static String getThisQuarterFirstDay() { LocalDate inputDate = LocalDate.parse(getCurrentDate()); Month month = inputDate.getMonth(); Month firstMonthOfQuarter = month.firstMonthOfQuarter(); LocalDate localDate = LocalDate.of(inputDate.getYear(), firstMonthOfQuarter, 1); return localDate.toString(); }
获取本季度最后一天
/** * jdk1.8 * 获取本季度最后一天 * * @return yyyy-mm-dd */public static String getThisQuarterEndDay() { LocalDate inputDate = LocalDate.parse(getCurrentDate()); Month month = inputDate.getMonth(); Month firstMonthOfQuarter = month.firstMonthOfQuarter(); Month endMonthOfQuarter = Month.of(firstMonthOfQuarter.getValue() + 2); LocalDate localDate = LocalDate.of(inputDate.getYear(), endMonthOfQuarter, endMonthOfQuarter.length(inputDate.isLeapYear())); return localDate.toString();}
获取上季度第一天
/** * jdk1.8 * 获取上季度第一天 * * @return yyyy-mm-dd */ public static String getLastQuarterFirstDay() { Calendar startCalendar = Calendar.getInstance(); startCalendar.set(Calendar.MONTH, ((int) startCalendar.get(Calendar.MONTH) / 3 - 1) * 3); startCalendar.set(Calendar.DAY_OF_MONTH, 1); return DateUtils.getDateToStringStart(startCalendar.getTime(), DateFormatConstant.C_YYYY_MM_DD); }
获取上季度最后一天
/** * jdk1.8 * 获取上季度最后一天 * * @return yyyy-mm-dd */ public static String getLastQuarterEndDay() { Calendar endCalendar = Calendar.getInstance(); endCalendar.set(Calendar.MONTH, ((int) endCalendar.get(Calendar.MONTH) / 3 - 1) * 3 + 2); endCalendar.set(Calendar.DAY_OF_MONTH, endCalendar.getActualMaximum(Calendar.DAY_OF_MONTH)); return DateUtils.getDateToStringStart(endCalendar.getTime(), DateFormatConstant.C_YYYY_MM_DD); }
去年本季度开始日期
/** * jdk1.8 * 去年本季度开始日期 * @return yyyy-mm-dd */ public static String getLastYearQuarterFirstDay() { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar c = Calendar.getInstance(); c.setTime(new Date()); c.add(Calendar.YEAR, -1); LocalDate inputDate = LocalDate.parse( getDateToString(c.getTime(),DateFormatConstant.C_YYYY_MM_DD)); LocalDate localDate = LocalDate.of(inputDate.getYear(),inputDate.getMonth().firstMonthOfQuarter(), 1); return localDate.toString(); }
去年本季度结束日期
/** * jdk1.8 * 去年本季度结束日期 * @return yyyy-mm-dd */ public static String getLastYearQuarterEndDay() { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar c = Calendar.getInstance(); c.setTime(new Date()); c.add(Calendar.YEAR, -1); LocalDate inputDate = LocalDate.parse(getDateToString(c.getTime(),DateFormatConstant.C_YYYY_MM_DD)); Month month = inputDate.getMonth(); Month firstMonthOfQuarter = month.firstMonthOfQuarter(); Month endMonthOfQuarter = Month.of(firstMonthOfQuarter.getValue() + 2); LocalDate localDate = LocalDate.of(inputDate.getYear(), endMonthOfQuarter, endMonthOfQuarter.length(inputDate.isLeapYear())); return localDate.toString(); }
年度时间工具
获取当前时间,年份第一天
/** * jdk1.8 * 获取当前时间,年份第一天 * * @return yyyy-mm-dd */ public static String getThisYearFirstDay() { return LocalDate.now().plusYears(0).with(TemporalAdjusters.firstDayOfYear()).toString(); }
获取当前时间,年份最后一天
/** * jdk1.8 * 获取当前时间,年份最后一天 * * @return yyyy-mm-dd */ public static String getThisYearEndDay() { return LocalDate.now().plusYears(0).with(TemporalAdjusters.lastDayOfYear()).toString(); }
获取去年的第一天
/** * jdk1.8 * 获取去年的第一天 * * @return */ public static String getLastYearFirstDay() { return LocalDate.now().plusYears(-1).with(TemporalAdjusters.firstDayOfYear()).toString(); }
获取去年的最后一天
/** * jdk1.8 * 获取去年的最后一天 * DateUtils * @return */ public static String getLastYearEndDay() { return LocalDate.now().plusYears(-1).with(TemporalAdjusters.lastDayOfYear()).toString(); }
/** * jdk1.8 * 获取当前日期,格式:yyyy-MM-dd * * @return */ public static String getCurrentDate() { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式 return df.format(new Date()); }