java8时间使用小结
Posted Ipeter
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java8时间使用小结相关的知识,希望对你有一定的参考价值。
//LocalDate代表一个ios格式(yyyy-MM-dd)的日期 获取当前的日期: LocalDate localDate = LocalDate.now();//LocalDate: 表示没有时区的日期, LocalDate是不可变并且线程安全的 System.out.println("localDate: " + localDate);//localDate: 2017-08-24 //LocalDate可以指定特定的日期,调用of或parse方法返回该实例: System.out.println(LocalDate.of(2017, 07, 20));//2017-07-20 System.out.println(LocalDate.parse("2017-07-20"));//2017-07-20 //为今天添加一天,也就是获取明天 System.out.println(LocalDate.now().plusDays(1));//2017-08-25 //为今天添加7天,也就是获取一个礼拜之后的今天 System.out.println(LocalDate.now().plusWeeks(1));//2017-08-31 //为今天添加一个月,也就是获取一个月后的今天 System.out.println(LocalDate.now().plusMonths(1));//2017-09-24 //为今天添加一年,也就是获取一年后的今天 System.out.println(LocalDate.now().plusYears(1));//2018-08-24 //从今天减去一个月 (跟加同理 可获取减去1天、 1个礼拜、 1年之后的时间) System.out.println(LocalDate.now().minus(1, ChronoUnit.MONTHS));//2017-07-24 System.out.println(LocalDate.now().minusMonths(1));//2017-07-24 //解析日期 2017-07-20,获取每周中的星期和每月中的日 等 System.out.println("周四: " +LocalDate.parse("2017-07-20").getDayOfWeek());//THURSDAY System.out.println("日: " +LocalDate.parse("2017-07-20").getDayOfMonth());//20 System.out.println("月: " +LocalDate.parse("2017-07-20").getMonthValue());//7 System.out.println("年: " +LocalDate.parse("2017-07-20").getYear());//2017 System.out.println("月: " +LocalDate.parse("2017-07-20").getMonth());//JULY //今年是不是闰年(闰年判断) System.out.println(LocalDate.now().isLeapYear());//false //判断是否在日期之前或之后: System.out.println(LocalDate.parse("2017-07-20").isAfter(LocalDate.parse("2017-07-21")));//false System.out.println(LocalDate.parse("2017-07-20").isBefore(LocalDate.parse("2017-07-21")));//true System.out.println(LocalDate.parse("2217-07-20").isBefore(LocalDate.parse("2017-07-21")));//false //获取这个月的第一天: System.out.println(LocalDate.parse("2017-07-20").with(TemporalAdjusters.firstDayOfMonth()));//2017-07-01 //获取下个月的第一天,等等。。 System.out.println(LocalDate.parse("2017-07-20").with(TemporalAdjusters.firstDayOfNextMonth()));//2017-08-01 System.out.println(LocalDate.parse("2017-07-20").with(TemporalAdjusters.lastDayOfMonth()));//2017-07-31 System.out.println(LocalDate.parse("2017-07-20").with(TemporalAdjusters.firstDayOfNextYear()));//2018-01-01 System.out.println(LocalDate.parse("2017-07-20").with(TemporalAdjusters.firstDayOfYear()));//2017-01-01 //判断今天是否是我的生日,例如我的生日是 2006-07-20 LocalDate birthday = LocalDate.of(2006, 07, 20); MonthDay birthdayMd = MonthDay.of(birthday.getMonth(),birthday.getDayOfMonth()); MonthDay today=MonthDay.from(LocalDate.now()); System.out.println("今天是否是我的生日: " + today.equals(birthdayMd));//false System.out.println("=======LocalTime表示一个时间,而不是日期==========="); //获取现在的时间 09:52:19.446 System.out.println("现在的时间: " +LocalTime.now()); //将一个字符串时间解析为LocalTime System.out.println( LocalTime.parse("15:02"));//15:02 //使用静态方法of创建一个时间 System.out.println(LocalTime.of(16, 02));//16:02 //使用解析字符串的方式并添加一小时,输出16:02 System.out.println(LocalTime.parse("15:02").plus(1, ChronoUnit.HOURS));//16:02 System.out.println(LocalTime.parse("15:02").plus(10, ChronoUnit.MINUTES));//15:12 //获取时间的小时、分钟 System.out.println(LocalTime.parse("15:02").getHour());//15 System.out.println(LocalTime.parse("15:02").getMinute());//2 //检查一个时间是否在另一个时间之前、之后 System.out.println(LocalTime.parse("15:02").isAfter(LocalTime.parse("14:02")));//true System.out.println(LocalTime.parse("15:02").isBefore(LocalTime.parse("14:02")));//false //每天的开始与结束时间 System.out.println(LocalTime.MAX);//23:59:59.999999999 System.out.println(LocalTime.MIN);//00:00 System.out.println("=======LocalDateTime是用来表示日期和时间的,这是一个最常用的类之一==========="); System.out.println("现在: " +LocalDateTime.now());//2017-08-24T10:31:03.600 //LocalDateTime也提供了相关API来对日期和时间进行增减操作 System.out.println("明天的现在: " +LocalDateTime.now().plusDays(1));//2017-08-25T10:33:05.363 //获取当前月份等等 System.out.println(LocalDateTime.now().getMonthValue());//8 System.out.println(LocalDateTime.now().getMonth());//AUGUST System.out.println(LocalDateTime.now().getYear());//2017 //日期格式化 System.out.println("======日期格式化======="); LocalDateTime now = LocalDateTime.now(); DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); System.out.println("默认格式化: " + now); System.out.println("自定义格式化: " + now.format(dateTimeFormatter)); LocalDateTime localDateTime = LocalDateTime.parse("2017-07-20 15:27:44", dateTimeFormatter); System.out.println("字符串转LocalDateTime: " + localDateTime.format(dateTimeFormatter)); DateTimeFormatter dateTimeFormatter_s = DateTimeFormatter.ofPattern("yyyy-MM-dd"); String dateString = dateTimeFormatter_s.format(LocalDate.now()); System.out.println("日期转字符串: " + dateString); //日期和周期 Period类用于修改给定日期或获得的两个日期之间的区别。 LocalDate initialDate = LocalDate.parse("2017-07-20"); LocalDate finalDate = initialDate.plus(Period.ofDays(5));//给初始化的日期添加5天 System.out.println("初始化日期: " + initialDate);//2017-07-20 System.out.println("加日期之后: " + finalDate);//2017-07-25 //周期(Period)API中提供给我们可以比较两个日期的差别,像下面这样获取差距天数:(同理可以获取两个时间相差的小时、周、月、年) long between = ChronoUnit.DAYS.between(initialDate, finalDate); System.out.println("差距天数: " + between);//5 //如何将Date类转换为Java8中的时间类 //Date和Instant互相转换 Date date = Date.from(Instant.now()); Instant instant = date.toInstant(); //Date转换为LocalDateTime /*LocalDateTime localDateTime_s = LocalDateTime.from(new Date()); System.out.println(localDateTime_s);*/ //LocalDateTime转Date Date date_s = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant()); System.out.println(date_s); //LocalDate转Date Date date_t = Date.from(LocalDate.now().atStartOfDay().atZone(ZoneId.systemDefault()).toInstant()); System.out.println(date_t);
以上是关于java8时间使用小结的主要内容,如果未能解决你的问题,请参考以下文章
java8 .stream().sorted().filter().map().collect()用法
Java8 Stream针对List先分组再求和最大值最小值平均值等