11、Java 日期时间 日期工具类

  Java8APIjava.util.DateSimpleDateFormat线Java8APIAPIISO

Java:

java.lang.Object
java.util.Date
java.sql.Date
public class Date
extends DateJDBCSQL DATE 197011000000.000 GMT

SQL DATE java.sql.Date


jdk 

  1

    Java 8 LocalDate java.util.Date

public static void main(String[] args) {
  LocalDate date = LocalDate.now();
  System.out.println("=" + date);
}

  2

    LocalDate.of() LocalDateAPI19000

public static void main(String[] args) {
   LocalDate date = LocalDate.of(2000, 1, 1);
   System.out.println("=" + date);
}

 3

public static void main(String[] args) {
   LocalDate date = LocalDate.now();
   System.out.printf("=%d =%d =%d", date.getYear(), date.getMonthValue(), date.getDayOfMonth());
}

 4

public static void main(String[] args) {
   LocalDate now = LocalDate.now();
   LocalDate date = LocalDate.of(2018, 9, 24);
   System.out.println("=" + now.equals(date));
}

  

    Java 8 LocalTime java.util.Date

public static void main(String[] args) {
   LocalTime time = LocalTime.now();
   System.out.println("=" + time);
}

  1

    Java8plusXxx()add()API使

public static void main(String[] args) {
           // 
       LocalTime time = LocalTime.now();
       LocalTime newTime = time.plusHours(2);
       System.out.println("newTime=" + newTime);
           // 
       LocalDate date = LocalDate.now();
       LocalDate newDate = date.plus(1, ChronoUnit.WEEKS);
       System.out.println("newDate=" + newDate);
       
  }

  2

    Java8isAfter()isBefore()

public static void main(String[] args) {
       
       LocalDate now = LocalDate.now();
       
       LocalDate date1 = LocalDate.of(2000, 1, 1);
       if (now.isAfter(date1)) {
           System.out.println("");
      }
       
       LocalDate date2 = LocalDate.of(2020, 1, 1);
       if (now.isBefore(date2)) {
           System.out.println("2020");
      }
       
  }

  

    Java 8ZoneIdZoneDateTime

public static void main(String[] args) {
       
       // 
       ZoneId shanghaiZoneId = ZoneId.of("Asia/Shanghai");
       ZonedDateTime shanghaiZonedDateTime = ZonedDateTime.now(shanghaiZoneId);
       
       // 
       ZoneId tokyoZoneId = ZoneId.of("Asia/Tokyo");
       ZonedDateTime tokyoZonedDateTime = ZonedDateTime.now(tokyoZoneId);
       
       DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
       System.out.println(": " + shanghaiZonedDateTime.format(formatter));
       System.out.println(": " + tokyoZonedDateTime.format(formatter));
       
  }

  1: 使

public static void main(String[] args) {
       
       // 
       String dateText = "20180924";
       LocalDate date = LocalDate.parse(dateText, DateTimeFormatter.BASIC_ISO_DATE);
       System.out.println("=" + date);
       
       // 
       dateText = date.format(DateTimeFormatter.ISO_DATE);
       System.out.println("dateText=" + dateText);
       
  }

 2

public static void main(String[] args) {
       
       DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
       
       // 
       LocalDateTime now = LocalDateTime.now();
       String nowText = now.format(formatter);
       System.out.println("nowText=" + nowText);
       
       // 
       String datetimeText = "1999-12-31 23:59:59";
       LocalDateTime datetime = LocalDateTime.parse(datetimeText, formatter);
       System.out.println(datetime);
       
  }

public class DateUtils {
   private static Log logger = LogFactory.getLog(DateUtils.class);
   public static String getFirstDayOfMonth(int year, int month) {
       <a title="java" href="http://www.itxm.cn" target="_blank">Calendar </a>cal = Calendar.getInstance();
       // 
       cal.set(Calendar.YEAR, year);
       // 
       cal.set(Calendar.MONTH, month - 1);
       // 1
       cal.set(Calendar.DAY_OF_MONTH, 1);
       // 
       SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
       String firstDayOfMonth = sdf.format(cal.getTime());
       return firstDayOfMonth;
  }
   
   public static String getLastDayOfMonth(int year, int month) {
       Calendar cal = Calendar.getInstance();
       // 
       cal.set(Calendar.YEAR, year);
       // 
       cal.set(Calendar.MONTH, month);
       // 1
       cal.set(Calendar.DATE, 0);
       // 
       SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
       String lastDayOfMonth = sdf.format(cal.getTime());
       return lastDayOfMonth;
  }
   
   public static String getFirstDayOfYear(int year) {
       Calendar cal = Calendar.getInstance();
       // 
       cal.set(Calendar.YEAR, year);
       // 
       cal.set(Calendar.MONTH, 0);
       // 1
       cal.set(Calendar.DAY_OF_MONTH, 1);
       // 
       SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
       String firstDayOfYear = sdf.format(cal.getTime());
       return firstDayOfYear;
  }
   
   public static String getLastDayOfYear(int year) {
       Calendar cal = Calendar.getInstance();
       // 
       cal.set(Calendar.YEAR, year);
       // 
       cal.set(Calendar.MONTH, 11);
       // 1
       cal.set(Calendar.DATE, 0);
       // 
       SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
       String lastDayOfYear = sdf.format(cal.getTime());
       return lastDayOfYear;
  }
   
   /**
    * 
    * @return
    */
   public static String firstDayOfCurrentMonth(){
       SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
       Calendar cal=Calendar.getInstance();//
       cal.add(Calendar.MONTH, 0);
       cal.set(Calendar.DAY_OF_MONTH,1);//1,
       return sdf.format(cal.getTime());
  }
   
   /**
    * 
    * @return
    */
   public static String lastDayOfCurrentMonth(){
       SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
       Calendar cal = Calendar.getInstance();//
       cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
       return sdf.format(cal.getTime());
  }
   
   
   public static String compareDate(String firstDate, String lastDate) {
       String retDate = null ;
       if(StringUtils.isEmpty(firstDate) && !StringUtils.isEmpty(lastDate)) {
           return lastDate ;
      }
       if(!StringUtils.isEmpty(firstDate) && StringUtils.isEmpty(lastDate)) {
           return firstDate ;
      }
       if(!StringUtils.isEmpty(firstDate) && !StringUtils.isEmpty(lastDate)) {
           // 
           SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
           try {
               Date first = sdf.parse(firstDate) ;
               Date last = sdf.parse(lastDate) ;
               if(first.after(last)) {
                   return sdf.format(first) ;
              }else{
                   return sdf.format(last) ;
              }
          } catch (ParseException e) {
               logger.error("", e);
          }
      }
       
       return retDate ;
  }
   
   public static Date getNextDay(Date date) {
       Calendar calendar = Calendar.getInstance();
       calendar.setTime(date);
       calendar.add(Calendar.DAY_OF_MONTH, +1);//+1
       date = calendar.getTime();
       return date;
  }
   
   /**
    * 
    * @param date
    * @return
    */
   public static String getMonth(Date date){
       Calendar cal = Calendar.getInstance();
       cal.setTime(date);
       int month = cal.get(Calendar.MONTH) + 1;
       if(month < 10){
           return "0"+month;
      } else {
           return String.valueOf(month);
      }
  }
   
   /**
    * 使
    *
    * @param date
    * @param pattern
    * @return
    */
   public static String format(Date date, String pattern) {
       String returnValue = "";
       if (date != null) {
           SimpleDateFormat df = new SimpleDateFormat(pattern);
           returnValue = df.format(date);
      }
       return (returnValue);
  }
   
   /**
    * 
    * @param DATE1
    * @param DATE2
    * @param format  yyyy-MM-dd,yyyy-MM-dd hh:mm:ss
    * @return
    */
   public static int compareDate(String DATE1, String DATE2, String format) {
        DateFormat df = new SimpleDateFormat(format);
        try {
          Date dt1 = df.parse(DATE1);
          Date dt2 = df.parse(DATE2);
          if (dt1.getTime() > dt2.getTime()) {
            return 1;
          } else if (dt1.getTime() < dt2.getTime()) {
            return -1;
          } else {
            return 0;
          }
        } catch (Exception e) {
          e.printStackTrace();
        }
        return 0;
      }
   
   public static void main(String[] args) {
       System.out.println(firstDayOfCurrentMonth());
       System.out.println(lastDayOfCurrentMonth());
       String camStartDate = "2016-11-11";
       String camEndDate = "2019-11-11";
       List<String> years = new ArrayList<>();
       SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
       try {
           Date d1 = sdf.parse(camStartDate);
           Date d2 = sdf.parse(camEndDate);
           Calendar c = Calendar.getInstance();
           c.setTime(d1);
           int year1 = c.get(Calendar.YEAR);
           c.setTime(d2);
           int year2 = c.get(Calendar.YEAR);
           do {
               if(year1 >= 2017){
                   years.add(year1 + "");
              }
               year1++;
          } while (year2 >= year1);
           
      } catch (ParseException e) {
           e.printStackTrace();
      }
       System.out.println(years);
  }
   
   /**
    * periodMM
    * @param period
    * @return
    */
   public static String getMonthTwoPlace(String period){
       if(period.length() == 2){
           return period;
      }
       
       if(period.length() == 1){
           return "0" + period;
      }
       return null;
  }
   
   /**
    * Date
    * @param dateStr
    * @param pattern
    * @return
    */
   public static Date StringToDate(String dateStr, String pattern) {
       try {
           DateFormat sdf = new SimpleDateFormat(pattern);
           Date date = sdf.parse(dateStr);
           return date;
      } catch (Exception ex) {
           return null;
      }
  }
   
   /**
    * 
    * @param dateStr
    * @param pattern
    * @return
    */
   public static String dateToString(Date date, String pattern) {
       DateFormat sdf = new SimpleDateFormat(pattern);
       String dateStr = sdf.format(date);
       return dateStr;
  }
}


原文地址:https://www.cnblogs.com/naimao/p/13346507.html