首页 > 编程语言 >Java8中处理日期和时间的常用API

Java8中处理日期和时间的常用API

时间:2022-10-17 20:02:00浏览次数:74  
标签:System 日期 API 当前 println now LocalDate Java8

场景

java8中引入了一个新包java.time,包含了多数会用到的核心类。

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

1、获取今天日期

        //获取今天日期
        System.out.println("今天的日期是:"+ LocalDate.now());//今天的日期是:2022-10-17

2、获取年月日信息

        //获取年月日信息
        System.out.println("获取年月日信息是:"+LocalDate.now().getYear()+"年"+LocalDate.now().getMonthValue()+"月"+LocalDate.now().getDayOfMonth()+"日");//获取年月日信息是:2022年10月17日

3、创建特定日期

        //创建特定日期
        //通过静态方法now可以创建当天日期,还可以调用LocalDate.of()创建任意日期,该方法需要传入年月日作为参数,返回对应的LocalDate实例
        LocalDate specificLocalDate = LocalDate.of(2022, 10, 18);
        System.out.println("创建特定日期是:"+specificLocalDate);//创建特定日期是:2022-10-18

4、判断两个日期是否相等

        //判断两个日期是否相等
        System.out.println(LocalDate.now().equals(LocalDate.of(2022,10,18)));//false
        System.out.println(LocalDate.now().equals(LocalDate.now()));//true

5、判断是否到周期性的某天

        //判断是否到周期性日期的某天(生日、年检...),每年的固定时间
        System.out.println(MonthDay.of(LocalDate.now().getMonth(),LocalDate.now().getDayOfMonth()).equals(MonthDay.of(10,17)));//true
        System.out.println(MonthDay.of(LocalDate.now().getMonth(),LocalDate.now().getDayOfMonth()).equals(MonthDay.of(10,18)));//false

6、获取当前时间

        //获取当前时间
        System.out.println("当前时间为:"+ LocalTime.now());//当前时间为:17:14:25.713

7、获取当前时间往后的指定时间

        //获取当前时间往后的指定时间
        System.out.println("当前时间为:"+LocalTime.now()+"当前时间往后5个小时为"+LocalTime.now().plusHours(5));//当前时间为:17:17:11.876当前时间往后5个小时为22:17:11.876
        System.out.println("当前时间为:"+LocalTime.now()+"当前时间往后5分钟为"+LocalTime.now().plusMinutes(5));//当前时间为:17:17:11.876当前时间往后5分钟为17:22:11.876
        System.out.println("当前时间为:"+LocalTime.now()+"当前时间往后5秒钟为"+LocalTime.now().plusSeconds(5));//当前时间为:17:17:11.876当前时间往后5秒钟为17:17:16.876

8、计算指定日期后的日期

        //计算指定日期后的日期
        System.out.println("当前日期为:"+LocalDate.now()+"当前日期一周后为:"+LocalDate.now().plus(1, ChronoUnit.WEEKS));//当前日期为:2022-10-17当前日期一周后为:2022-10-24
        System.out.println("当前日期为:"+LocalDate.now()+"当前日期一天后为:"+LocalDate.now().plus(1, ChronoUnit.DAYS));//当前日期为:2022-10-17当前日期一天后为:2022-10-18
        System.out.println("当前日期为:"+LocalDate.now()+"当前日期一月后为:"+LocalDate.now().plus(1, ChronoUnit.MONTHS));//当前日期为:2022-10-17当前日期一月后为:2022-11-17
        System.out.println("当前日期为:"+LocalDate.now()+"当前日期一年后为:"+LocalDate.now().plus(1, ChronoUnit.YEARS));//当前日期为:2022-10-17当前日期一年后为:2023-10-17

9、计算指定日期前的日期

        //计算指定日期前的日期
        System.out.println("当前日期为:"+LocalDate.now()+"当前日期一周前为:"+LocalDate.now().minus(1, ChronoUnit.WEEKS));//当前日期为:2022-10-17当前日期一周前为:2022-10-10
        System.out.println("当前日期为:"+LocalDate.now()+"当前日期一天前为:"+LocalDate.now().minus(1, ChronoUnit.DAYS));//当前日期为:2022-10-17当前日期一天前为:2022-10-16
        System.out.println("当前日期为:"+LocalDate.now()+"当前日期一月前为:"+LocalDate.now().minus(1, ChronoUnit.MONTHS));//当前日期为:2022-10-17当前日期一月前为:2022-09-17
        System.out.println("当前日期为:"+LocalDate.now()+"当前日期一年前为:"+LocalDate.now().minus(1, ChronoUnit.YEARS));//当前日期为:2022-10-17当前日期一年前为:2021-10-17

10、获取当前时间戳

        //获取当前时间戳
        //systemUTC 根据您的系统时钟返回当前时间并设置为UTC
        System.out.println("systemUTC当前时间戳为:"+ Clock.systemUTC().millis());//systemUTC当前时间戳为:1666005316223
        //根据系统时钟区返回时间
        System.out.println("systemDefaultZone当前时间戳为:"+ Clock.systemDefaultZone().millis());//systemDefaultZone当前时间戳为:1666005316223
        //获取当前的时间戳
        System.out.println("当前时间戳为:"+Instant.now().toEpochMilli());//当前时间戳为:1666005316223

11、判断日期是否早于某一日期

        //判断日期是是否早于某一日期
        System.out.println("当前日期:"+LocalDate.now()+"是否早于2022-10-18:"+LocalDate.now().isBefore(LocalDate.of(2022,10,18)));//当前日期:2022-10-17是否早于2022-10-18:true
        System.out.println("当前日期:"+LocalDate.now()+"是否晚于2022-10-18:"+LocalDate.now().isAfter(LocalDate.of(2022,10,18)));//当前日期:2022-10-17是否晚于2022-10-18:false

12、计算是否为闰年

        //计算是否为闰年
        System.out.println("今年是否为闰年:"+ LocalDate.now().isLeapYear());//今年是否为闰年:false

13、计算两个日期之间单独的相差数

        //计算两个日期之间单独的相差数
        //注意Period的between计算的两个日期之间的间隔,得到的为分别的年月日,而不是一共多少年、多少月、多少日
        Period between = Period.between(LocalDate.now(), LocalDate.of(2033, 12, 30));
        System.out.println("当前距离2033-12-30相差"+between.getYears()+"年"+between.getMonths()+"月"+between.getDays()+"日");//当前距离2033-12-30相差11年2月13日

14、计算两个日期之间总的相差数

        //获取总的相差间隔
        System.out.println("当前距离2033-12-30总共相差天数:"+LocalDate.now().until(LocalDate.of(2033,12,30),ChronoUnit.DAYS));//当前距离2033-12-30总共相差天数:4092
        System.out.println("当前距离2033-12-30总共相差周数:"+LocalDate.now().until(LocalDate.of(2033,12,30),ChronoUnit.WEEKS));//当前距离2033-12-30总共相差周数:584
        System.out.println("当前距离2033-12-30总共相差月数:"+LocalDate.now().until(LocalDate.of(2033,12,30),ChronoUnit.MONTHS));//当前距离2033-12-30总共相差月数:134
        System.out.println("当前距离2033-12-30总共相差年数:"+LocalDate.now().until(LocalDate.of(2033,12,30),ChronoUnit.YEARS));//当前距离2033-12-30总共相差年数:11

15、字符串与日期类型互相转换

        //格式化解析日期字符串
        System.out.println("格式化20221017后的日期为:"+LocalDate.parse("20221017", DateTimeFormatter.BASIC_ISO_DATE));//格式化20221017后的日期为:2022-10-17
        //字符串与日期类型转换
        System.out.println("日期转换为字符串为:"+LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss")));//日期转换为字符串为:2022/10/17 19:22:42
        System.out.println("字符串转换为日期:"+LocalDate.parse("2022/12/17 19:22:42",DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss")));//字符串转换为日期:2022-12-17

 

标签:System,日期,API,当前,println,now,LocalDate,Java8
From: https://www.cnblogs.com/badaoliumangqizhi/p/16800395.html

相关文章