Java 8新增了LocalDate和LocalTime接口,为什么要搞一套全新的处理日期和时间的API?因为旧的java.util.Date
实在是太难用了。其次,LocalDate这个类是不可变的,并且是线程安全的。
1.获取当前时间
LocalDate localDate = LocalDate.now();
System.out.println("java8现在的日期是:" + localDate);
Date date = new Date();
System.out.println("原日期格式是:" + date);
java8现在的日期是:2019-07-04
原日期格式是:Thu Jul 04 20:35:07 CST 2019
2.获取 年,月,日等信息
int year = localDate.getYear();
int month = localDate.getMonthValue();
int day = localDate.getDayOfMonth();
System.out.println("年:"+ year + " 月:" + month + " 日:" + day);
年:2019 月:7 日:4
3.通过now()方法可以获取当前时间的日期,还可以调用LocalDate.of()创建任意日期,传入年,月,日,返回对应的 LocalDate实例。
LocalDate createDate = LocalDate.of(2001,1,1);
System.out.println(createDate);
2001-01-01
4.判断两个日期是否相等 LocalDate类重写了equals方法,可以两个日期进行对比
LocalDate firstDate = LocalDate.of(2019,7,3);
if(firstDate.equals(localDate)){
System.out.println("日期相同");
}else {
System.out.println("日期不相同");
}
日期不相同
5.获取当前时间 与获取当前日期LocalDate相似,获取时间调用的是LocalTime类,这个类只有时间没有日期。调用静 态方法now()获取当前时间,默认格式是:hh:mm:ss:nnn
LocalTime localTime = LocalTime.now();
System.out.println("现在时间是:"+localTime);
现在时间是:20:35:07.833
6.在现有的时间上增加小时 java8提供了plusHours()替代 add()。plusMinutes()plusSeconds()
LocalTime newTime = localTime.plusHours(2);
System.out.println("两个小时后的时间:" + newTime);
两个小时后的时间:22:35:07.833
7.如何计算一周后的时间 LocalDate日期不包含时间信息,其中的plus()方法可以用来增加,天,周,月等。 ChronoUnit 类声明了这些时间单位。
LocalDate nextWeek = localDate.plus(1, ChronoUnit.WEEKS);
System.out.println("今天的日期是:" + localDate + " 一周后的日期是:" + nextWeek);
今天的日期是:2019-07-04 一周后的日期是:2019-07-11