时间函数使用总结:
1. 使用字符串初始化Date
 

String dateString = “2018-02-23”;
     Date date= new SimpleDateFormat(“yyyy-MM-dd”).parse(dateString);


2. 使用时间戳初始化
    Date date = new Date(时间戳);
3. 计算两个日期相差天数

long day = date1.getTime() - date2.getTime()) / (24*60*60*1000) + 1;
     
      // 得微秒级时间差
     long val = calendarEnd.getTimeInMillis() - calendarBegin.getTimeInMillis();
     // 换算后得到天数
     long day = val / (1000 * 60 * 60 * 24);

4. 使用Calendar

Calendar calendar=Calendar.getInstance();
     Date date=calendar.getTime();
     calendar.setTime(date);


5.获取年月日

calendar.get(Calendar.YEAR);
     calendar.get(Calendar.MONTH) + 1;
     calendar.get(Calendar.DAY_OF_MONTH);    calendar.get()方法
     calendar.get(Calendar.DAY_OF_WEEK); 当前周的第几天
     calendar.get(Calendar.DAY_OF_MONTH); 当前月的第几天
     calendar.get(Calendar.DAY_OF_YEAR); 当前年的第几天


7. calendar.add(field1,field2)方法
    add方法可以修改当前的日期
    field1指定修改的字段,可以为Calendar.DAY_OF_WEEK,DAY_OF_MONTH
    filed2可以增加或减少天数,为int型
    
8. 判断某个日期是否在一定日期范围内:
    return date.after(beginDate) && date.before(endDate);    //开区间

9. Calendar的用法:可以获取当前的年份,月,天数,小时,分钟。可以进行时间的加减

10. Java8: LocalDate LocalTime
    java.time.LocalDate.get(TemporalField field)
    异常:

DateTimeException - 如果无法获取该字段的值或该值超出该字段的有效值范围。
     UnsupportedTemporalTypeException - 如果不支持该字段或值的范围超过int。
     ArithmeticException - 如果发生数字溢出。
     ChronoField.DAY_OF_MONTH
     Date转LocalDate
         Date date = new Date();
         Instant instant = date.toInstant();
         ZoneId zoneId = ZoneId.systemDefault();        // atZone()方法返回在指定时区从此Instant生成的ZonedDateTime。
         LocalDate localDate = instant.atZone(zoneId).toLocalDate();
     LocalDate转Date
         ZoneId zoneId = ZoneId.systemDefault();
         LocalDate localDate = LocalDate.now();
         ZonedDateTime zdt = localDate.atStartOfDay(zoneId);
         Date date = Date.from(zdt.toInstant());
 // 取本月第1天:
 LocalDate firstDayOfThisMonth = today.with(TemporalAdjusters.firstDayOfMonth()); // 2014-12-01
 // 取本月第2天:
 LocalDate secondDayOfThisMonth = today.withDayOfMonth(2); // 2014-12-02
 // 取本月最后一天,再也不用计算是28,29,30还是31:
 LocalDate lastDayOfThisMonth = today.with(TemporalAdjusters.lastDayOfMonth()); // 2014-12-31
 // 取下一天:
 LocalDate firstDayOf2015 = lastDayOfThisMonth.plusDays(1); // 变成了2015-01-01
 // 取2015年1月第一个周一,这个计算用Calendar要死掉很多脑细胞:
 LocalDate firstMondayOf2015 = LocalDate.parse("2015-01-01").with(TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY)); // 2015-01-05