java8中处理日期和时间

  
Java 8中如何处理日期和时间h5> <强> 1。在Java 8中获取今天的日期

  
      <李> Java 8中的LocalDate用于表示当天日期。和java.util。日期不同,它只有日期,不包含时间。当你仅需要表示日期时就用这个类。   
  
 <代码> LocalDate现在=LocalDate.now ();
  System.out.println(现在);//结果
  2018-06-20  
  

<强> 2。在Java 8中获取年、月、日信息

  
      <李> LocalDate类提供了获取年,月,日的快捷方法,其实例还包含很多其它的日期属性。通过调用这些方法就可以很方便的得到需要的日期信息,不用像以前一样需要依赖java.util。李日历类了   
  
 <代码类="语言java "> LocalDate现在=LocalDate.now ();
  int年=now.getYear ();
  int monthValue=https://www.yisu.com/zixun/now.getMonthValue ();
  int dayOfMonth=now.getDayOfMonth ();
  system . out。printf("年=% d,月=% d,一天=% d”,年,monthValue, ayOfMonth);//结果
  年=2018=6月,日=20
   
  

<强> 3。在Java 8中处理特定日期

  
      <李>在第一个例子里,我们通过静态工厂方法现在()非常容易地创建了当天日期,你还可以调用另一个有用的工厂方法LocalDate.of()创建任意日期,该方法需要传入年,月,日做参数,返回对应的LocalDate实例。这个方法的好处是没再犯老API的设计错误,比如年度起始于1900年月份是从0开始等等。日期所见即所得,就像下面这个例子表示了6月20日,没有任何隐藏机关。   
  
 <代码类="语言java ">=LocalDate LocalDate日期。(2018、06、20);
  System.out.println(日期);
   
  

<强> 4。在Java 8中判断两个日期是否相等

  
      <李>判断两个日期是否相等李   
  
 <代码> LocalDate现在=LocalDate.now ();
  LocalDate=LocalDate日期。(2018、06、20);
  如果(date.equals(现在)){
  System.out.println(“同一天”);
  } 
  

<强> 5。在Java 8中检查像生日这种周期性事件

  
      <李> Java中如何检查这些节日或其它周期性事件呢?答案就是MonthDay类。这两个类组合了月份和日,去掉了年,这意味着你可以用它判断每年都会发生事件。和这个类相似的还有一个YearMonth类。这些类也都是不可变并且线程安全的值类型。   
  
 <代码类="语言java ">
  LocalDate现在=LocalDate.now ();
  LocalDate dateOfBirth=LocalDate。(2018、06、20);
  MonthDay生日=MonthDay.of (dateOfBirth.getMonth (), dateOfBirth.getDayOfMonth ());
  MonthDay currentMonthDay=MonthDay.from(现在);
  如果(currentMonthDay.equals(生日)){
  system . out。println(“生日快乐”);
  其他}{
  system . out。println(“对不起,今天不是你的生日”);
  }//结果
  生日快乐
   
  

<强> 6。在Java 8中获取当前时间

  
      <李>与Java 8获取日期的例子很像,获取时间使用的是本地时间类,一个只有时间没有日期的LocalDate近亲。可以调用静态工厂方法现在()来获取当前时间。默认的格式是hh: mm: ss: nnn。   
  
 <代码> LocalTime LocalTime=LocalTime.now ();
  System.out.println(作用);//结果可以看到当前时间就只包含时间信息,没有日期。
  13:35:56.155  
  

<强> 7。如何在现有的时间上增加小时

  
      <李> Java 8除了不变类型和线程安全的好处之外,还提供了更好的plusHours()方法替换添加(),并且是兼容的。注意,这些方法返回一个全新的作用实例,由于其不可变性,返回后一定要用变量赋值。   
  
 <代码> LocalTime LocalTime=LocalTime.now ();
  System.out.println(作用);
  LocalTime localTime1=localTime.plusHours(2);//增加2小时
  System.out.println (localTime1);//结果
  13:41:20.721
  15:41:20.721  
  

<强> 8。如何计算一周后的日期

  
      <李> LocalDate日期不包含时间信息,它的+()方法用来增加天,周,月,ChronoUnit类声明了这些时间单位。由于LocalDate也是不变类型,返回后一定要用变量赋值。   
  
 <代码> LocalDate现在=LocalDate.now ();
  LocalDate plusDate=? (1、ChronoUnit.WEEKS);
  System.out.println(现在);
  System.out.println (plusDate);//结果
  2018-06-20
  2018-06-27  
  

<强> 9。计算一年前或一年后的日期