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