你不会还在用Date日期类吧!!!!!!!!

82 阅读1分钟

20200211143741190.png

今天开始我也弃用Date了

自从用了java.time下面的LocalDate、LocalDateTime、LocalTime真的不会再用java.util.date。平时经常用到统计每天的数据,每月周的数据,每月的数据,用Date算这些时间太麻烦了。最近几个项目看到同事的日期都是用的localdatetime,我也尝试着用了下确实方便。

举一个小demo对比一下吧,获取当前的日期、时间、当前开始日期、当天结束日期

Date

 // 获取当天开始时间和结束时间
  public void  getDayBeginByDate() {
    Calendar cal = new GregorianCalendar();
    cal.set(Calendar.HOUR_OF_DAY, 0);
    cal.set(Calendar.MINUTE, 0);
    cal.set(Calendar.SECOND, 0);
    cal.set(Calendar.MILLISECOND, 0);
    //获取当天开始时间
    System.out.println(cal.getTime());
    //获取当天结束时间
    cal.set(Calendar.HOUR_OF_DAY, 23);
    cal.set(Calendar.MINUTE, 59);
    cal.set(Calendar.SECOND, 59);
    System.out.println(cal.getTime());
​
  }
  //获取本周的开始时间
  public void getBeginDayOfWeek() {
    Date date = new Date();
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    int dayofweek = cal.get(Calendar.DAY_OF_WEEK);
    if (dayofweek == 1) {
      dayofweek += 7;
​
    }
    cal.add(Calendar.DATE, 2 - dayofweek);
    cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH), 0,
        0, 0);
    //获取本周的开始时间
    System.out.println(cal.getTime());
​
  }

LocalDateTime

  public void timeUtil(){
    //获取当天开始时间
    System.out.println(LocalDate.now().atStartOfDay());
    //获取当天结束时间
    System.out.println(LocalDateTime.of(LocalDate.now(), LocalTime.of(23, 59, 59)));
    //获取本周的开始时间
    System.out.println(LocalDate.now().with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY)).atStartOfDay());
  }

当然java.time 下面还有很多方便的API,还没用过的朋友一定要看看哦