ToB企服应用市场:ToB评测及商务社交产业平台

标题: 【进阶篇-Day7:JAVA中Date、LocalDate等时间API的介绍】 [打印本页]

作者: 悠扬随风    时间: 2024-7-11 08:34
标题: 【进阶篇-Day7:JAVA中Date、LocalDate等时间API的介绍】
1、概述


2、JDK8(-) 时间类

2.1 Date类:

(1)构造方法:


  1. package com.itheima;
  2. import java.util.Date;
  3. public class DateDemo1 {
  4.     public static void main(String[] args) {
  5.         //1、将当前时间,封装为Date日期对象
  6.         Date date1 = new Date();
  7.         System.out.println(date1);//Sat Jun 29 16:16:54 CST 2024
  8.         //2、将时间毫秒值转换为Date日期对象
  9.         Date date2 = new Date(1000L);//传入1000毫秒
  10.         //从时间原点1970年0时0分0秒算起:因为中国是东八区,所以是8时
  11.         System.out.println(date2);//Thu Jan 01 08:00:01 CST 1970
  12.     }
  13. }
复制代码
(2)常用成员方法:


  1. package com.itheima;
  2. import java.util.Date;
  3. public class DateDemo1 {
  4.     public static void main(String[] args) {
  5.         //1、将当前时间,封装为Date日期对象
  6.         Date date1 = new Date();
  7.         System.out.println(date1);//Sat Jun 29 16:16:54 CST 2024
  8.         //2、将时间毫秒值转换为Date日期对象
  9.         Date date2 = new Date(1000L);
  10.         //从时间原点1970年0时0分0秒算起:因为中国是东八区,所以是8时
  11.         System.out.println(date2);//Thu Jan 01 08:00:01 CST 1970
  12.         //3、常用方法
  13.         //3.1 getTime():返回从1970年1月1日 00:00:00走到此刻的总的毫秒数
  14.         System.out.println(date1.getTime());//1719649443396
  15.         System.out.println(date2.getTime());//1000
  16.         //3.2 setTime():设置日期对象的时间为 当前时间毫秒值对应的时间
  17.         Date date3 = new Date();//空参构造为当前时间
  18.         date3.setTime(0L);//设置当前对象时间的毫秒值为0,会打印00毫秒的时间值
  19.         System.out.println(date3);//Thu Jan 01 08:00:00 CST 1970
  20.     }
  21. }
复制代码
2.2 SimpleDateFormat类:



  1. package com.itheima;
  2. import java.text.SimpleDateFormat;
  3. import java.util.Date;
  4. public class DateDemo2 {
  5.     public static void main(String[] args) {
  6.         //1、构造方法:
  7.         //1.1 SimpleDateFormat():空参构造
  8.         // 创建一个日期格式化对象,使用默认的空参构造方法
  9.         SimpleDateFormat simpleDateFormat = new SimpleDateFormat();
  10.         //创建Date对象,封装此刻的时间
  11.         Date date = new Date();
  12.         //将日期对象转换为字符串,调用format方法:
  13.         String result = simpleDateFormat.format(date);
  14.         System.out.println(result);//24-6-29 下午4:40
  15.         //1.2 SimpleDateFormat():带参构造
  16.         // 创建一个日期格式化对象,使用指定格式的构造方法
  17.         SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss E a");
  18.         //创建Date对象,封装此刻的时间
  19.         Date date2 = new Date();
  20.         //将日期对象转换为字符串,调用format方法:
  21.         String result2 = simpleDateFormat2.format(date2);
  22.         System.out.println(result2);//2024年06月29日 16:48:39 星期六 下午
  23.     }
  24. }
复制代码
  注:SimpleDateFormat()方法在指定格式时,可以按下面的形貌设置。

  
  1. package com.itheima;
  2. import java.text.ParseException;
  3. import java.text.SimpleDateFormat;
  4. import java.util.Date;
  5. public class DateDemo3 {
  6.     public static void main(String[] args) throws ParseException {
  7.         //将字符串日期——》转换为Date对象
  8.         //创建带有格式的SimpleDateFormat()对象
  9.         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
  10.         //创建字符串日期(和前面SimpleDateFormat对象指定格式要一样)
  11.         String date = "2024-06-29";
  12.         //将字符串日期转换为Date对象
  13.         Date parse = simpleDateFormat.parse(date);
  14.         System.out.println(parse);
  15.     }
  16. }
复制代码

   需求:计算你来到这个天下多少天
  1. package com.itheima;
  2. import java.text.ParseException;
  3. import java.text.SimpleDateFormat;
  4. import java.util.Date;
  5. import java.util.Scanner;
  6. public class DateDemo4 {
  7.     public static void main(String[] args) throws ParseException {
  8.         /**
  9.          * 需求:计算你来到这个世界多少天了
  10.          */
  11.         //1、输入生日
  12.         Scanner sc = new Scanner(System.in);
  13.         System.out.println("请输入你的生日(格式:yyyy-MM-dd):");
  14.         String s = sc.next();
  15.         //2、将生日转换为Date对象
  16.         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
  17.         Date birthday = simpleDateFormat.parse(s);
  18.         //3、获取此刻日期与生日的差值,并转换为天数
  19.         Date date = new Date();
  20.         long day = (date.getTime() - birthday.getTime())/(1000*64*64*24);
  21.         System.out.println("来到这个世界" + day + "天");
  22.     }
  23. }
复制代码
2.3 总结:



2.4 Calendar类介绍:


   注:Date类虽然也能获取年月日等,但是不推荐利用,Java推荐利用Calendar类,下面我们看看。
  




  1. package com.itheima;
  2. import java.util.Calendar;
  3. public class DateDemo5 {
  4.     public static void main(String[] args) {
  5.         //1、创建对象:
  6.         //Calendar c:抽象类
  7.         //Calendar.getInstance():获取子类对象
  8.         //获取对当前日历对象
  9.         Calendar c = Calendar.getInstance();
  10.         //2、常用方法:
  11.         //2.1调用get方法:获取指定字段的信息
  12.         int year = c.get(Calendar.YEAR);
  13.         System.out.println(year);//获取年份 2024
  14.         //注:Calendar类的月份是0-11,想要获取常规的月份,需要对结果 +1操作
  15.         int month = c.get(Calendar.MONTH);
  16.         System.out.println(month);//获取月份 5
  17.         int day = c.get(Calendar.DAY_OF_MONTH);
  18.         System.out.println(day);//获取一个月中的第几天 29
  19.         //星期:日 一 二 三 四 五 六
  20.         //     1  2  3  4  5  6  7
  21.         int week = c.get(Calendar.DAY_OF_WEEK);
  22.         System.out.println(week);//7
  23.         //2.2 调用set方法:修改日历中的某个字段
  24.         Calendar calendar = Calendar.getInstance();
  25.         calendar.set(Calendar.YEAR, 2025);//修改年
  26.         System.out.println(calendar.get(Calendar.YEAR));//2025
  27.         calendar.set(2025,10,12);//修改年月日
  28.         System.out.println(calendar.get(Calendar.MONTH));//10
  29.         //2.3 调用add:为某个字段增加/减少指定的值
  30.         Calendar calendar1 = Calendar.getInstance();
  31.         calendar1.add(Calendar.YEAR,1);//对年加1
  32.         System.out.println(calendar1.get(Calendar.YEAR));//2025
  33.     }
  34. }
复制代码

  1. package com.itheima;
  2. import java.util.Calendar;
  3. import java.util.Set;
  4. public class DateDemo6 {
  5.     public static void main(String[] args) {
  6.         //获取Calendar子类的对象
  7.         Calendar calendar = Calendar.getInstance();
  8.         //设置时间为2050年3月1日
  9.         calendar.set(2050, 2, 1);
  10.         //获取2050年3月1日的星期
  11.         int week = calendar.get(Calendar.DAY_OF_WEEK);
  12.         String weekArr[] = {"", "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
  13.         System.out.println(week);
  14.         if ("星期四".equals(weekArr[week])){
  15.             System.out.println("今天是疯狂星期四,我要奢侈一把~~~");
  16.         }
  17.     }
  18. }
复制代码

  1. package com.itheima;
  2. import java.text.ParseException;
  3. import java.text.SimpleDateFormat;
  4. import java.util.Calendar;
  5. import java.util.Date;
  6. import java.util.Scanner;
  7. public class Test {
  8.     public static void main(String[] args) throws ParseException {
  9.         //1、输入字符串日期
  10.         Scanner sc = new Scanner(System.in);
  11.         System.out.println("请输入日期(yyyy-MM-dd)");
  12.         String dateString = sc.next();
  13.         //2、使用SimpleDateFormat,将字符串的日期,转换为Date日期
  14.         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
  15.         Date date = simpleDateFormat.parse(dateString);
  16.         //3、将日期对象,转换为Calendar对象
  17.         Calendar calendar = Calendar.getInstance();
  18.         calendar.setTime(date);
  19.         //4、调用get方法,获取一年中的第几天
  20.         int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);
  21.         System.out.println(dayOfYear);
  22.     }
  23. }
复制代码

3、JDK8(+) 时间类




3.1 日历类




  1. package com.itheima.jdk8;
  2. import java.time.LocalDate;
  3. import java.time.LocalDateTime;
  4. import java.time.LocalTime;
  5. public class LocalDateDemo1 {
  6.     public static void main(String[] args) {
  7.         //1、获取此刻的时间对象
  8.         //1.1 LocalDate.now():获取 年、月、日
  9.         LocalDate localDate = LocalDate.now();
  10.         System.out.println(localDate);//2024-06-30
  11.         //1.2 LocalTime.now():获取 时、分、秒、毫秒
  12.         LocalTime localTime = LocalTime.now();
  13.         System.out.println(localTime);//11:03:19.244
  14.         //1.3 LocalDateTime.now():获取 年、月、日、时、分、秒、毫秒
  15.         LocalDateTime localDateTime = LocalDateTime.now();
  16.         System.out.println(localDateTime);//2024-06-30T10:58:07.804
  17.         //---------------------------------------------------------------------------
  18.         //2、获取指定的时间对象
  19.         //2.1 LocalDate.of():获取指定的 年、月、日
  20.         LocalDate localDateOf = LocalDate.of(2022, 2, 3);
  21.         System.out.println(localDateOf);//2022-02-03
  22.         //2.2 LocalTime.of():获取指定的 时、分、秒、毫秒
  23.         LocalTime localTimeOf = LocalTime.of(8, 8, 8, 8);
  24.         System.out.println(localTimeOf);//08:08:08.000000008
  25.         //2.3 LocalDateTime.of():获取指定的 年、月、日、时、分、秒、毫秒
  26.         LocalDateTime localDateTimeOf = LocalDateTime.of(2008, 8, 8, 8, 8, 8);
  27.         System.out.println(localDateTimeOf);//2008-08-08T08:08:08
  28.         //---------------------------------------------------------------------------
  29.         //3、LocalDate、LocalTime、LocalDateTime 之间的转换
  30.         LocalDateTime now = LocalDateTime.now();
  31.         //LocalDateTime转换为 LocalDate
  32.         System.out.println(now.toLocalDate());
  33.         //LocalDateTime转换为 LocalTime
  34.         System.out.println(now.toLocalTime());
  35.         //---------------------------------------------------------------------------
  36.         //4、获取年、月、日、时、分、秒、微秒、纳秒等
  37.         LocalDateTime localDateTime1 = LocalDateTime.now();
  38.         System.out.println(localDateTime1.getYear());//获取 年
  39.         System.out.println(localDateTime1.getMonthValue());//获取 月
  40.         System.out.println(localDateTime1.getDayOfMonth());//获取 一个月中的第几天
  41.         System.out.println(localDateTime1.getHour());//获取 时
  42.         System.out.println(localDateTime1.getMinute());//获取 分
  43.         System.out.println(localDateTime1.getSecond());//获取 秒
  44.         System.out.println(localDateTime1.getNano());//获取 纳秒
  45.         System.out.println(localDateTime1.getDayOfWeek().getValue());//获取 星期
  46.     }
  47. }
复制代码


  1. package com.itheima.jdk8;
  2. import java.time.LocalDate;
  3. import java.time.LocalDateTime;
  4. /**
  5. * Title: LocalDateDemo2
  6. * Describe: 类的功能
  7. * Name: masizhou
  8. * Date: 2024/7/3
  9. * Copyright: @2022 by masizhou
  10. */
  11. public class LocalDateDemo2 {
  12.     public static void main(String[] args) {
  13.         LocalDateTime nowTime = LocalDateTime.now();
  14.         //1、 minus:减法    ------》注意:都会返回一个新的对象
  15.         System.out.println("减一年:" + nowTime.minusYears(1));//减一年 minusYears(年)
  16.         System.out.println("减一月:" + nowTime.minusMonths(1));//减一月 minusMonths(月)
  17.         System.out.println("减一天:" + nowTime.minusDays(1));//减一天 minusDays(天)
  18.         System.out.println("减一小时:" + nowTime.minusHours(1));//减一小时 minusHours(时)
  19.         System.out.println("减一分钟:" + nowTime.minusMinutes(1));//减一分钟 minusMinutes(分)
  20.         System.out.println("减一秒:" + nowTime.minusSeconds(1));//减一秒 minusSeconds(秒)
  21.         System.out.println("减一纳秒:" + nowTime.minusNanos(1));//减一纳秒 minusNanos(纳秒)
  22.         System.out.println("-------------------------------------------------------------");
  23.         //2、 plus:加法     ------》注意:都会返回一个新的对象
  24.         System.out.println("加二年:" + nowTime.plusYears(2));//加二年 plusYears(年)
  25.         System.out.println("加二月:" + nowTime.plusMonths(2));//加二月 plusMonths(月)
  26.         System.out.println("加二天:" + nowTime.plusDays(2));//加二天 plusDays(天)
  27.         System.out.println("加二时:" + nowTime.plusHours(2));//加二时 plusHours(时)
  28.         System.out.println("加二分:" + nowTime.plusMinutes(2));//加二分 plusMinutes(分)
  29.         System.out.println("加二秒:" + nowTime.plusSeconds(2));//加二秒 plusSeconds(秒)
  30.         System.out.println("加二纳秒:" + nowTime.plusNanos(2));//加二纳秒 plusNanos(纳秒)
  31.         System.out.println("-------------------------------------------------------------");
  32.         //3、with:设置某一个指定的时间(如年、或月等)   ------》注意:都会返回一个新的对象
  33.         System.out.println(nowTime.withYear(2008));//设置年份为2008年
  34.         System.out.println(nowTime.withMonth(2));//设置月份为2月
  35.         System.out.println(nowTime.withDayOfMonth(5));//设置一个月中的第几天
  36.         System.out.println(nowTime.withHour(10));//设置小时为10
  37.         System.out.println(nowTime.withMinute(45));//设置分钟为45
  38.         System.out.println(nowTime.withSecond(35));//设置为35秒
  39.         System.out.println(nowTime.withNano(200));//设置为200纳秒
  40.         System.out.println("-------------------------------------------------------------");
  41.         //4、isBefore:是否在xx时间之前
  42.         //   isAfter:是否在xx时间之后
  43.         //   equals:判断两个时间是否相等
  44.         LocalDateTime myTime = LocalDateTime.of(2008, 8, 8, 8, 8, 8, 8);
  45.         LocalDateTime now = LocalDateTime.now();
  46.         System.out.println(now + "是否在" + myTime + "之前?" + now.isBefore(myTime));//false
  47.         System.out.println(now + "是否在"+ myTime + "之前?" + now.isAfter(myTime));//true
  48.         System.out.println(now + "是否与"+ myTime + "相等?" + now.equals(myTime));//false
  49.     }
  50. }
复制代码


3.2 日期格式化类



  1. package com.itheima.jdk8;
  2. import java.time.LocalDate;
  3. import java.time.LocalDateTime;
  4. import java.time.format.DateTimeFormatter;
  5. public class LocalDateDemo3 {
  6.     public static void main(String[] args) {
  7.         LocalDateTime now = LocalDateTime.now();
  8.         System.out.println("格式化之前:" + now);//格式化之前:2024-07-04T21:15:18.426
  9.         //1、获取格式化对象
  10.         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
  11.         //2、格式化
  12.         String result = formatter.format(now);
  13.         System.out.println("格式化之前:" + result);//格式化之前:2024年07月04日
  14.         //3、解析
  15.         String time = "2008年08月08日";
  16.         LocalDate parse = LocalDate.parse(time, formatter);
  17.         System.out.println(parse);//2008-08-08
  18.     }
  19. }
复制代码
3.3 时间类

(1):


   注:Instant其实就雷同于Date。
  1. package com.itheima.jdk8;
  2. import java.time.Instant;
  3. import java.time.ZoneId;
  4. import java.util.Set;
  5. public class InstantDemo1 {
  6.     public static void main(String[] args) {
  7.         /**
  8.          * Instant 类似与 Date
  9.          */
  10.         Instant instant = Instant.now();
  11.         System.out.println("当前的时间戳是:" + instant);//当前的时间戳是:2024-07-05T12:26:15.449Z
  12.         //发现不是中国当下的时间,原因是中国是东八区,如何正确获取呢?
  13.         System.out.println("转换后的时间戳是:" + Instant.now().atZone(ZoneId.of("Asia/Shanghai")));//转换后的时间戳是:2024-07-05T20:29:17.623+08:00[Asia/Shanghai]
  14.     }
  15. }
复制代码
(2):


  1. package com.itheima.jdk8;
  2. import java.time.Instant;
  3. import java.time.ZoneId;
  4. import java.util.Set;
  5. public class InstantDemo1 {
  6.     public static void main(String[] args) {
  7.         //获取Java所支持的所有时区
  8.         Set<String> set = ZoneId.getAvailableZoneIds();
  9.         System.out.println(set);//[Asia/Aden, America/Cuiaba, Etc/GMT+9,...]
  10.         System.out.println(set.size());//601
  11.         System.out.println("--------------------------------------------");
  12.         //获取系统默认时区
  13.         ZoneId zoneId = ZoneId.systemDefault();
  14.         System.out.println(zoneId);//Asia/Shanghai
  15.         System.out.println("--------------------------------------------");
  16.         //获取一个指定时区
  17.         ZoneId of = ZoneId.of("America/Cuiaba");
  18.         System.out.println(of);//America/Cuiaba
  19.     }
  20. }
复制代码
(3):


  1. package com.itheima.jdk8.instant;
  2. import java.time.Instant;
  3. import java.time.ZoneId;
  4. import java.time.ZonedDateTime;
  5. public class InstantDemo2 {
  6.     public static void main(String[] args) {
  7.         //1、获取当前时间的Instant对象(标准时间)
  8.         Instant now = Instant.now();
  9.         System.out.println("当前时间为(世界标准时间):" + now);//当前时间为(世界标准时间):2024-07-05T12:46:04.401Z
  10.         System.out.println("-----------------------------------");
  11.         //2、根据秒、毫秒、纳秒 获取Instant对象:从1970年1月1日开始算
  12.         Instant instant1 = Instant.ofEpochSecond(5);
  13.         Instant instant2 = Instant.ofEpochMilli(1000);
  14.         System.out.println(instant1);//1970-01-01T00:00:05Z
  15.         System.out.println(instant2);//1970-01-01T00:00:01Z
  16.         System.out.println("-----------------------------------");
  17.         //3、指定时区
  18.         ZonedDateTime zonedDateTime = Instant.now().atZone(ZoneId.systemDefault());
  19.         System.out.println("带时区的时间:" + zonedDateTime);//带时区的时间:2024-07-05T20:58:07.337+08:00[Asia/Shanghai]
  20.         System.out.println("-----------------------------------");
  21.         //4、判断系列方法
  22.         System.out.println(now.isBefore(instant1));//now时间 在 instant1时间之前吗?
  23.         System.out.println(now.isAfter(instant1));//now时间 在 instant1时间之后吗?
  24.         System.out.println("-----------------------------------");
  25.         //5、减少时间系列方法
  26.         System.out.println("减1000毫秒:" + now.minusMillis(1000));
  27.         System.out.println("减5秒:" + now.minusSeconds(5));
  28.         System.out.println("-----------------------------------");
  29.         //6、增加时间系列方法
  30.         System.out.println("增加1000毫秒:" + now.plusMillis(1000));
  31.         System.out.println("增加5秒:" + now.plusSeconds(5));
  32.         System.out.println("-----------------------------------");
  33.     }
  34. }
复制代码

3.4 工具类


  1. package com.itheima.jdk8.util;
  2. import java.time.Duration;
  3. import java.time.LocalDate;
  4. import java.time.LocalDateTime;
  5. import java.time.Period;
  6. import java.time.temporal.ChronoUnit;
  7. public class UtilDemo {
  8.     public static void main(String[] args) {
  9.         /**
  10.            (1)Period: 计算日期间隔(年月日)
  11.          */
  12.         //此刻年月日
  13.         LocalDate today = LocalDate.now();
  14.         System.out.println(today);//2024-07-05
  15.         //昨天年月日
  16.         LocalDate otherDate = LocalDate.of(2024, 7, 4);//2024-07-04
  17.         System.out.println(otherDate);//2024-07-04
  18.         //Period对象表示时间的间隔对象
  19.         Period period = Period.between(today, otherDate);//第二个参数 减 第一个参数
  20.         System.out.println("间隔多少年:" + period.getYears());//间隔多少年:0
  21.         System.out.println("间隔多少月:" + period.getMonths());//间隔多少月:-2
  22.         System.out.println("间隔多少天:" + period.getDays());//间隔多少天:-1
  23.         System.out.println("间隔的总月份:" + period.toTotalMonths());//总月份:-2
  24.         /**
  25.          (2)Duration: 计算日期间隔(时分秒)
  26.          */
  27.         //此刻日期时间对象
  28.         LocalDateTime time = LocalDateTime.now();//2024-07-05
  29.         //昨天的日期时间对象
  30.         LocalDateTime otherTime = LocalDateTime.of(2024, 7, 4, 12, 12, 12);
  31.         // Duration获取日期间隔,第二个参数减第一个参数
  32.         Duration between = Duration.between(otherTime, time);
  33.         System.out.println("两个时间差的天数=" + between.toDays());
  34.         System.out.println("两个时间差的小时=" + between.toHours());
  35.         System.out.println("两个时间差的分钟=" + between.toMinutes());
  36.         System.out.println("两个时间差的毫秒=" + between.toMillis());
  37.         System.out.println("两个时间差的纳秒=" + between.toNanos());
  38.         /**
  39.          (3)ChronoUnit: 可用于在单个时间单位内测量一段时间,这个工具类上述最全面的,可以用于比较所有的时间单位
  40.          */
  41.         //指定时间1
  42.         LocalDateTime Time1 = LocalDateTime.of(2024, 7, 10, 10, 10, 10);//2024-7-10 10:10:10
  43.         //指定时间2
  44.         LocalDateTime Time2 = LocalDateTime.of(2024, 7, 8, 10, 10, 10);//2024-7-8 10:10:10
  45.         //计算这两个时间的时间差,第二个参数减第一个参数
  46.         System.out.println("相差的年数=" + ChronoUnit.YEARS.between(Time2, Time1));//相差的年数=0
  47.         System.out.println("相差的月数=" + ChronoUnit.MONTHS.between(Time2, Time1));//相差的月数=0
  48.         System.out.println("相差的周数=" + ChronoUnit.WEEKS.between(Time2, Time1));//相差的周数=0
  49.         System.out.println("相差的天数=" + ChronoUnit.DAYS.between(Time2, Time1));//相差的天数=2
  50.         System.out.println("相差的时数=" + ChronoUnit.HOURS.between(Time2, Time1));//相差的时数=48
  51.         System.out.println("相差的分钟数=" + ChronoUnit.MINUTES.between(Time2, Time1));//相差的分钟数=2880
  52.         System.out.println("相差的秒数=" + ChronoUnit.SECONDS.between(Time2, Time1));//相差的秒数=172800
  53.         System.out.println("相差的毫秒数=" + ChronoUnit.MILLIS.between(Time2, Time1));//相差的毫秒数=172800000
  54.         System.out.println("相差的微妙数=" + ChronoUnit.MICROS.between(Time2, Time1));//相差的微妙数=172800000000
  55.         System.out.println("相差的纳秒数=" + ChronoUnit.NANOS.between(Time2, Time1));//相差的纳秒数=172800000000000
  56.         System.out.println("相差的半天数=" + ChronoUnit.HALF_DAYS.between(Time2, Time1));//相差的半天数=4
  57.         System.out.println("相差的世纪(百年)数=" + ChronoUnit.CENTURIES.between(Time2, Time1));//相差的世纪(百年)数=0
  58.         System.out.println("相差的千年数=" + ChronoUnit.MILLENNIA.between(Time2, Time1));//相差的千年数=0
  59.         System.out.println("相差的纪元数=" + ChronoUnit.ERAS.between(Time2, Time1));//相差的纪元数=0
  60.     }
  61. }
复制代码
4、练习

  1. package com.itheima.jdk8;
  2. import java.time.LocalDate;
  3. import java.time.format.DateTimeFormatter;
  4. import java.time.temporal.ChronoUnit;
  5. import java.util.Scanner;
  6. public class Test {
  7.     public static void main(String[] args) {
  8.         /**
  9.          * 需求:键盘录入用户生日,计算出用户的实际年龄
  10.          */
  11.         Scanner sc =  new Scanner(System.in);
  12.         System.out.println("请输入您的生日:");
  13.         String stringBirthday = sc.nextLine();
  14.         //1、将字符串转换为日期对象
  15.         LocalDate birthday = LocalDate.parse(stringBirthday, DateTimeFormatter.ofPattern("yyyy年M月d"));
  16.         //2、获取今天的日期对象
  17.         LocalDate nowDate = LocalDate.now();
  18.         //3、比较两个日期,获取间隔年份
  19.         System.out.println("实际年龄是:" + ChronoUnit.YEARS.between(birthday, nowDate));
  20.     }
  21. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4