Date转String

  1. /**
  2. * jdk1.8
  3. * @param date 时间
  4. * @param pattern 日期格式
  5. * @return
  6. */
  7. public static String getDateToString(Date date, String pattern) {
  8. if (StringUtils.isBlank(date) || StringUtils.isBlank(pattern)) {
  9. return "";
  10. }
  11. //设置字符串格式
  12. SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
  13. return simpleDateFormat.format(date);
  14. }

String转Date

  1. /**
  2. * 将短时间格式字符串转换为时间 yyyy-MM-dd
  3. *
  4. * @param strDate
  5. * @return
  6. */
  7. public static Date strToDate(String strDate,String pattern) {
  8. SimpleDateFormat formatter = new SimpleDateFormat(pattern);
  9. ParsePosition pos = new ParsePosition(0);
  10. Date strtodate = formatter.parse(strDate, pos);
  11. return strtodate;
  12. }

获取当前日期,格式:yyyy-MM-dd

  1. /**
  2. * jdk1.8
  3. * 获取当前日期,格式:yyyy-MM-dd
  4. *
  5. * @return
  6. */
  7. public static String getCurrentDate() {
  8. SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式
  9. return df.format(new Date());
  10. }

获取当前时间,格式:yyyy-MM-dd HH:mm:ss

  1. /**
  2. * 获取当前时间,格式:yyyy-MM-dd HH:mm:ss
  3. *
  4. * @return
  5. */
  6. public static String getCurrentTime() {
  7. SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
  8. return df.format(new Date());
  9. }

获取当前日期(指定格式)

  1. /**
  2. * 获取当前日期(指定格式)
  3. * @param format 日期格式
  4. * @return
  5. */
  6. public static String getCurrentDate(String format) {
  7. SimpleDateFormat df = new SimpleDateFormat(format);//设置日期格式
  8. return df.format(new Date());
  9. }

获取当前小时(24小时制)

  1. /**
  2. * 获取当前小时(24小时制)
  3. *
  4. * @return
  5. */
  6. public static int getCurrentHour() {
  7. Calendar calendar = Calendar.getInstance();
  8. return calendar.get(Calendar.HOUR_OF_DAY);
  9. }

获取当前(月份)日期

  1. /**
  2. * 获取当前(月份)日期
  3. *
  4. * @return
  5. */
  6. public static int getCurrentDayOfMonth() {
  7. Calendar calendar = Calendar.getInstance();
  8. return calendar.get(Calendar.DAY_OF_MONTH);
  9. }

获取当前(星期)日期(星期一为第一天)

  1. /**
  2. * 获取当前(星期)日期(星期一为第一天)
  3. *
  4. * @return
  5. */
  6. public static int getCurrentDayOfWeek() {
  7. Calendar calendar = Calendar.getInstance();
  8. int day = calendar.get(Calendar.DAY_OF_WEEK);
  9. if(day == 1){
  10. return 7;
  11. }else{
  12. return (day - 1);
  13. }
  14. }

获取当前月份(年)

  1. /**
  2. * 获取当前月份(年)
  3. *
  4. * @return
  5. */
  6. public static int getCurrentMonthOfYear() {
  7. Calendar calendar = Calendar.getInstance();
  8. return calendar.get(Calendar.MONTH)+1;
  9. }

获取本月所在季度的月份

  1. /**
  2. * 获取本月所在季度的月份
  3. *
  4. * @return
  5. */
  6. public static int getCurrentMonthOfQuarter() {
  7. int month = getCurrentMonthOfYear();
  8. int qm = month%3;
  9. if(qm == 0){
  10. qm = 3;
  11. }
  12. return qm;
  13. }

获取日期对象 yyyy-MM-dd

  1. /**
  2. * 获取日期对象
  3. * @param date yyyy-MM-dd
  4. * @return
  5. */
  6. public static Date getDate(String date) throws Exception{
  7. SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式
  8. return df.parse(date);
  9. }

获取日期对象yyyy-MM-dd HH:mm:ss

  1. /**
  2. * 获取日期对象yyyy-MM-dd HH:mm:ss
  3. * @param date yyyy-MM-dd HH:mm:ss
  4. * @return
  5. */
  6. public static Date getDateTime(String dateTime) throws Exception{
  7. SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
  8. return df.parse(dateTime);
  9. }

得到n个月之后的月份

  1. /**
  2. * 得到n个月之后的月份
  3. * @param days
  4. * @return
  5. */
  6. public static String getAfterMonth(int cnt) {
  7. Calendar canlendar = Calendar.getInstance(); // java.util包
  8. canlendar.add(Calendar.MONTH, cnt); // 日期减 如果不够减会将月变动
  9. Date date = canlendar.getTime();
  10. SimpleDateFormat sdfd = new SimpleDateFormat("yyyyMM");
  11. String dateStr = sdfd.format(date);
  12. return dateStr;
  13. }

得到n天之后的日期

  1. /**
  2. * 得到n天之后的日期
  3. * @param days
  4. * @return
  5. */
  6. public static String getAfterMonthDate(String date, int cnt) throws Exception{
  7. SimpleDateFormat sdfd = new SimpleDateFormat("yyyy-MM-dd");
  8. Date inDate = sdfd.parse(date);
  9. Calendar canlendar = Calendar.getInstance(); // java.util包
  10. canlendar.setTime(inDate);
  11. canlendar.add(Calendar.MONTH, cnt);
  12. Date outDate = canlendar.getTime();
  13. String dateStr = sdfd.format(outDate);
  14. return dateStr;
  15. }

时间相减得到天数

  1. /**
  2. * 功能描述:时间相减得到天数
  3. * @param beginDateStr 开始时间
  4. * @param endDateStr 结束时间
  5. * @return
  6. */
  7. public static long getDaySub(String beginDateStr,String endDateStr){
  8. long day=0;
  9. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  10. java.util.Date beginDate = null;
  11. java.util.Date endDate = null;
  12. try {
  13. beginDate = format.parse(beginDateStr);
  14. endDate= format.parse(endDateStr);
  15. } catch (ParseException e) {
  16. e.printStackTrace();
  17. }
  18. day=(endDate.getTime()-beginDate.getTime())/(24*60*60*1000);
  19. //System.out.println("相隔的天数="+day);
  20. return day;
  21. }

获取日期年份

  1. /**
  2. * 获取日期年份
  3. * @return
  4. */
  5. public static int getYear(String date) {
  6. if(StringUtils.isEmpty(date) && date.length() >= 4){
  7. return 0;
  8. }
  9. return Integer.parseInt(date.substring(0, 4));
  10. }

获取日期月份

  1. /**
  2. * 获取日期月份
  3. * @param date yyyy-MM-dd格式
  4. * @return
  5. */
  6. public static int getMonth(String date) {
  7. if(StringUtils.isEmpty(date) && date.length() >= 7){
  8. return 0;
  9. }
  10. return Integer.parseInt(date.substring(5, 7));
  11. }

获取日期所在年份的第几周

  1. /**
  2. * 获取日期所在年份的第几周
  3. * @param date yyyy-MM-dd格式
  4. * @return
  5. */
  6. public static int getWeekOfYear(String date) throws Exception{
  7. if(StringUtils.isEmpty(date)){
  8. return 0;
  9. }
  10. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  11. Date inDate = sdf.parse(date);
  12. Calendar canlendar = Calendar.getInstance(); // java.util包
  13. canlendar.setTime(inDate);
  14. return canlendar.get(Calendar.WEEK_OF_YEAR);
  15. }

周数时间工具

获取本周第1天

  1. /**
  2. * jdk1.8
  3. * 获取本周第1天
  4. * <p>
  5. * 每星期第一天为:星期1,最后一天为星期日
  6. *
  7. * @return yyyy-mm-dd
  8. */
  9. public static String getMondayOfThisWeek() {
  10. return LocalDate.now().plusWeeks(0).with(DayOfWeek.MONDAY).toString();
  11. }

获取本周最后1天

  1. /**
  2. *jdk1.8
  3. * 获取本周最后1天
  4. * 每星期第一天为:星期一,最后一天为星期日
  5. *
  6. * @return yyyy-mm-dd
  7. */
  8. public static String getWeeklastday() {
  9. return LocalDate.now().plusWeeks(0).with(DayOfWeek.SUNDAY).toString();
  10. }

获取上周第一天的时间

  1. /**
  2. * jdk1.8
  3. * 获取上周第一天的时间 yyyy-mm-dd
  4. * 每星期第一天为:星期一,最后一天为星期日
  5. *
  6. * @return yyyy-mm-dd
  7. */
  8. public static String getLastWeekFirstDay() {
  9. return LocalDate.now().plusWeeks(-1).with(DayOfWeek.MONDAY).toString();
  10. }

获取上周最后一天的时间

  1. /**
  2. * jdk1.8
  3. * 获取上周最后一天的时间 yyyy-mm-dd
  4. * 每星期第一天为:星期一,最后一天为星期日
  5. *
  6. * @return yyyy-mm-dd
  7. */
  8. public static String getLastWeekEndDay() {
  9. return LocalDate.now().plusWeeks(-1).with(DayOfWeek.SUNDAY).toString();
  10. }

获取去年的本周的开始时间

  1. /**
  2. * jdk1.8
  3. * 获取去年的本周的开始时间
  4. *
  5. * @return yyyy-mm-dd
  6. */
  7. public static String getLastYearThisWeekFirst() {
  8. return LocalDate.now().minusYears(1).with(DayOfWeek.MONDAY).toString();
  9. }

获取去年的本周的结束时间

  1. /**
  2. * jdk1.8
  3. * 获取去年的本周的结束时间
  4. *
  5. * @return yyyy-mm-dd
  6. */
  7. public static String getLastYearThisWeekEnd() {
  8. return LocalDate.now().minusYears(1).with(DayOfWeek.SUNDAY).toString();
  9. }

月数时间工具

获取本月第一天

  1. /**
  2. * jdk1.8
  3. * 获取本月第一天
  4. *
  5. * @return yyyy-mm-dd
  6. */
  7. public static String getThisMonthFirstDay() {
  8. return LocalDate.now().plusMonths(0).with(TemporalAdjusters.firstDayOfMonth()).toString();
  9. }

获取本月最后一天

  1. /**
  2. * jdk1.8
  3. * 获取本月最后一天
  4. *
  5. * @return yyyy-mm-dd
  6. */
  7. public static String getThisMonthEndDay() {
  8. return LocalDate.now().minusMonths(0).with(TemporalAdjusters.lastDayOfMonth()).toString();
  9. }

获取上月第一天

  1. /**
  2. * jdk1.8
  3. * 获取上月第一天
  4. *
  5. * @return yyyy-mm-dd
  6. */
  7. public static String getLastMonthFirstDay() {
  8. return LocalDate.now().plusMonths(-1).with(TemporalAdjusters.firstDayOfMonth()).toString();
  9. }

获取上月最后一天

  1. /**
  2. * jdk1.8
  3. * 获取上月最后一天
  4. * DateUtils
  5. *
  6. * @return yyyy-mm-dd
  7. */
  8. public static String getLastMonthEndDay() {
  9. return LocalDate.now().minusMonths(1).with(TemporalAdjusters.lastDayOfMonth()).toString();
  10. }

获取本月天数

  1. /**
  2. * jdk1.8
  3. * 获取本月天数
  4. *
  5. * @return yyyy-mm-dd
  6. */
  7. public static int getThisMonthDayCount() {
  8. return LocalDate.now().with(TemporalAdjusters.lastDayOfMonth()).getDayOfMonth();
  9. }

获取上月天数

  1. /**
  2. * jdk1.8
  3. * 获取上月天数
  4. *
  5. * @return yyyy-mm-dd
  6. */
  7. public static int getLastMonthDayCount() {
  8. return LocalDate.now().plusMonths(-1).with(TemporalAdjusters.lastDayOfMonth()).getDayOfMonth();
  9. }

获取去年本月的开始时间

  1. /**
  2. * jdk1.8
  3. * 获取去年本月的开始时间
  4. *
  5. * @return yyyy-mm-dd
  6. */
  7. public static String getLastYearMonthStartDay() {
  8. return LocalDate.now().plusYears(-1).with(TemporalAdjusters.firstDayOfMonth()).toString();
  9. }

获取去年本月的结束时间

  1. /**
  2. * jdk1.8
  3. * 获取去年本月的结束时间
  4. *
  5. * @return yyyy-mm-dd
  6. */
  7. public static String getLastYearMonthEndDay() {
  8. return LocalDate.now().plusYears(-1).with(TemporalAdjusters.lastDayOfMonth()).toString();
  9. }

季度时间工具

获取本季第一天

  1. /**
  2. * jdk1.8
  3. * 获取本季第一天
  4. *
  5. * @return yyyy-mm-dd
  6. */
  7. public static String getThisQuarterFirstDay() {
  8. LocalDate inputDate = LocalDate.parse(getCurrentDate());
  9. Month month = inputDate.getMonth();
  10. Month firstMonthOfQuarter = month.firstMonthOfQuarter();
  11. LocalDate localDate = LocalDate.of(inputDate.getYear(), firstMonthOfQuarter, 1);
  12. return localDate.toString();
  13. }

获取本季度最后一天

  1. /**
  2. * jdk1.8
  3. * 获取本季度最后一天
  4. *
  5. * @return yyyy-mm-dd
  6. */
  7. public static String getThisQuarterEndDay() {
  8. LocalDate inputDate = LocalDate.parse(getCurrentDate());
  9. Month month = inputDate.getMonth();
  10. Month firstMonthOfQuarter = month.firstMonthOfQuarter();
  11. Month endMonthOfQuarter = Month.of(firstMonthOfQuarter.getValue() + 2);
  12. LocalDate localDate = LocalDate.of(inputDate.getYear(), endMonthOfQuarter, endMonthOfQuarter.length(inputDate.isLeapYear()));
  13. return localDate.toString();
  14. }

获取上季度第一天

  1. /**
  2. * jdk1.8
  3. * 获取上季度第一天
  4. *
  5. * @return yyyy-mm-dd
  6. */
  7. public static String getLastQuarterFirstDay() {
  8. Calendar startCalendar = Calendar.getInstance();
  9. startCalendar.set(Calendar.MONTH, ((int) startCalendar.get(Calendar.MONTH) / 3 - 1) * 3);
  10. startCalendar.set(Calendar.DAY_OF_MONTH, 1);
  11. return DateUtils.getDateToStringStart(startCalendar.getTime(), DateFormatConstant.C_YYYY_MM_DD);
  12. }

获取上季度最后一天

  1. /**
  2. * jdk1.8
  3. * 获取上季度最后一天
  4. *
  5. * @return yyyy-mm-dd
  6. */
  7. public static String getLastQuarterEndDay() {
  8. Calendar endCalendar = Calendar.getInstance();
  9. endCalendar.set(Calendar.MONTH, ((int) endCalendar.get(Calendar.MONTH) / 3 - 1) * 3 + 2);
  10. endCalendar.set(Calendar.DAY_OF_MONTH, endCalendar.getActualMaximum(Calendar.DAY_OF_MONTH));
  11. return DateUtils.getDateToStringStart(endCalendar.getTime(), DateFormatConstant.C_YYYY_MM_DD);
  12. }

去年本季度开始日期

  1. /**
  2. * jdk1.8
  3. * 去年本季度开始日期
  4. * @return yyyy-mm-dd
  5. */
  6. public static String getLastYearQuarterFirstDay() {
  7. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  8. Calendar c = Calendar.getInstance();
  9. c.setTime(new Date());
  10. c.add(Calendar.YEAR, -1);
  11. LocalDate inputDate = LocalDate.parse( getDateToString(c.getTime(),DateFormatConstant.C_YYYY_MM_DD));
  12. LocalDate localDate = LocalDate.of(inputDate.getYear(),inputDate.getMonth().firstMonthOfQuarter(), 1);
  13. return localDate.toString();
  14. }

去年本季度结束日期

  1. /**
  2. * jdk1.8
  3. * 去年本季度结束日期
  4. * @return yyyy-mm-dd
  5. */
  6. public static String getLastYearQuarterEndDay() {
  7. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  8. Calendar c = Calendar.getInstance();
  9. c.setTime(new Date());
  10. c.add(Calendar.YEAR, -1);
  11. LocalDate inputDate = LocalDate.parse(getDateToString(c.getTime(),DateFormatConstant.C_YYYY_MM_DD));
  12. Month month = inputDate.getMonth();
  13. Month firstMonthOfQuarter = month.firstMonthOfQuarter();
  14. Month endMonthOfQuarter = Month.of(firstMonthOfQuarter.getValue() + 2);
  15. LocalDate localDate = LocalDate.of(inputDate.getYear(), endMonthOfQuarter, endMonthOfQuarter.length(inputDate.isLeapYear()));
  16. return localDate.toString();
  17. }

年度时间工具

获取当前时间,年份第一天

  1. /**
  2. * jdk1.8
  3. * 获取当前时间,年份第一天
  4. *
  5. * @return yyyy-mm-dd
  6. */
  7. public static String getThisYearFirstDay() {
  8. return LocalDate.now().plusYears(0).with(TemporalAdjusters.firstDayOfYear()).toString();
  9. }

获取当前时间,年份最后一天

  1. /**
  2. * jdk1.8
  3. * 获取当前时间,年份最后一天
  4. *
  5. * @return yyyy-mm-dd
  6. */
  7. public static String getThisYearEndDay() {
  8. return LocalDate.now().plusYears(0).with(TemporalAdjusters.lastDayOfYear()).toString();
  9. }

获取去年的第一天

  1. /**
  2. * jdk1.8
  3. * 获取去年的第一天
  4. *
  5. * @return
  6. */
  7. public static String getLastYearFirstDay() {
  8. return LocalDate.now().plusYears(-1).with(TemporalAdjusters.firstDayOfYear()).toString();
  9. }

获取去年的最后一天

  1. /**
  2. * jdk1.8
  3. * 获取去年的最后一天
  4. * DateUtils
  5. * @return
  6. */
  7. public static String getLastYearEndDay() {
  8. return LocalDate.now().plusYears(-1).with(TemporalAdjusters.lastDayOfYear()).toString();
  9. }
  1. /**
  2. * jdk1.8
  3. * 获取当前日期,格式:yyyy-MM-dd
  4. *
  5. * @return
  6. */
  7. public static String getCurrentDate() {
  8. SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式
  9. return df.format(new Date());
  10. }