java8之前大家用的是Date类、Calendar类,Date既包含日期也包含时间使用起来十分不方便,java8新的java.time.*包带来了新的类库,下面一起看看吧
在java8中,java.time
包下主要包含下面几个主要的类:
Instant:时间戳 Duration:持续时间,时间差 LocalDate:只包含日期,比如:2019-10-20 LocalTime:只包含时间,比如:23:12:10 LocalDateTime:包含日期和时间,比如:2019-10-20 23:14:21 Period:时间段 ZoneOffset:时区偏移量,比如:+8:00 ZonedDateTime:带时区的时间 Clock:时钟,比如获取目前美国纽约的时间
1、LocalDate使用实例
LocalDate todayDate = LocalDate.now(); System.out.println("今天日期:"+todayDate); //今天日期:2019-06-04 LocalDate firstDay = todayDate.with(TemporalAdjusters.firstDayOfMonth()); System.out.println("当月第一天:"+firstDay); //当月第一天:2019-06-01 //另一种写法 LocalDate firstDay2 = todayDate.withDayOfMonth(1); System.out.println("当月第一天:"+firstDay2); //当月第一天:2019-06-01 //取当月最后一天 LocalDate lastDay = todayDate.with(TemporalAdjusters.lastDayOfMonth()); System.out.println("当月最后一天:"+lastDay); //当月最后一天:2019-06-30 //当前日期+1天 LocalDate tomorrow = todayDate.plusDays(1); System.out.println("明天:"+tomorrow); //明天:2019-06-05 //当前日期-1天 LocalDate yesterday = todayDate.plusDays(-1); System.out.println("昨天:"+yesterday); //昨天:2019-06-03 //判断是否是闰年 System.out.println(todayDate.isLeapYear()); //false //指定日期 System.out.println(LocalDate.of(2019,6,15)); //2019-06-15 System.out.println(LocalDate.parse("2019-06-15")); //2019-06-15
2、LocalTime使用实例
//获取当前时间 LocalTime nowTime = LocalTime.now(); System.out.println("当前时间:"+nowTime); //当前时间:11:16:30.156 //不显示毫秒 System.out.println(LocalTime.now().withNano(0)); //11:16:30 //指定时间 System.out.println(LocalTime.of(12,30,1)); //12:30:01 System.out.println(LocalTime.parse("12:30:01")); //12:30:01
3、日期时间比较、获取不同时区
//时间、日期比较 isAfter(),isBefore方法 LocalDate date1 = LocalDate.now(); LocalDate date2 = LocalDate.of(2018,6,4); System.out.println(date1.isAfter(date2)); //true LocalTime time1 = LocalTime.now(); LocalTime time2 = LocalTime.of(1,30,1); System.out.println(time1.isAfter(time2)); //true //处理不同时区 ZoneId defaultZone = ZoneId.systemDefault(); System.out.println(defaultZone); //Asia/Shanghai //查看纽约当前时间 LocalDateTime localDateTime = LocalDateTime.now(ZoneId.of("America/New_York")); System.out.println(localDateTime); //2019-06-03T23:36:13.749 System.out.println(LocalDateTime.now()); //2019-06-04T11:36:13.751 当前时区时间 //计算日期之间差值 LocalDate d = LocalDate.now(); //2019-06-04 LocalDate d2 = LocalDate.of(2019,5,1); Period period = Period.between(d2,d); System.out.println(period.getDays()); //3 System.out.println(period.getMonths()); //1 System.out.println(period.getYears()); //0 System.out.println(d2.until(d, ChronoUnit.DAYS)); //34
4、格式化日期时间
//时间日期解析、格式化 DateTimeFormatter dtf = DateTimeFormatter.BASIC_ISO_DATE; System.out.println(LocalDate.parse("20180604",dtf)); //2018-06-04 DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy MM dd"); System.out.println(LocalDate.parse("2018 06 04",dtf2)); //2018-06-04 DateTimeFormatter dtf3 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); System.out.println(LocalDateTime.parse("2019-05-01 23:23:00",dtf3));//2019-05-01T23:23 System.out.println(dtf3.format(LocalDateTime.now()));
转载请注明:Terry's blog » java8 LocalDate、LocalTime、LocalDateTime和DateTimeFormatter使用实例