分别表示使用ISO-8691日历系统的日期、时间、日期和时间。它们提供了简单的日期或时间,并不包含当前的时间信息。也不包括与时区相关的信息。
package com.expgiga.Java8;
import java.time.*;
/**
*
*/
public class TestLocalDateTime {
public static void main(String[] args) {
//1.LocalDate LocalTime LocalDateTime使用的方式是一样的。
LocalDateTime ldt = LocalDateTime.now();
System.out.println(ldt);
LocalDateTime ldt2 = LocalDateTime.of(2017,10,10,11,22,33);
System.out.println(ldt2);
LocalDateTime ldt3 = ldt.plusYears(2);
System.out.println(ldt3);
LocalDateTime ldt4 = ldt.minusMonths(2);
System.out.println(ldt4);
System.out.println(ldt.getYear());
System.out.println(ldt.getMonthValue());
System.out.println(ldt.getDayOfMonth());
System.out.println(ldt.getHour());
System.out.println(ldt.getMinute());
System.out.println(ldt.getSecond());
//2.Instant:时间戳(以Unix元年:1970年1月1日 00:00:00到某个时间之间的毫秒值)
Instant ins = Instant.now(); //默认获取的是UTC时区
System.out.println(ins);
System.out.println(ins.toEpochMilli()); //ms
Instant ins2 = Instant.ofEpochMilli(60);//加60s
System.out.println(ins2);
OffsetDateTime odt = ins.atOffset(ZoneOffset.ofHours(8));
System.out.println(odt);
//3.
//Duration:计算两个"时间"之间的间隔
//Period:计算两个"日期"之间的间隔
Instant ins3 = Instant.now();
Instant ins4 = Instant.now();
Duration duration = Duration.between(ins3, ins4);
System.out.println(duration.toMillis());
LocalTime lt1 = LocalTime.now();
LocalTime lt2 = LocalTime.now();
System.out.println(Duration.between(lt1, lt2).toMillis());
LocalDate ld1 = LocalDate.now();
LocalDate ld2 = LocalDate.of(2015,1,1);
System.out.println(Period.between(ld1, ld2));
System.out.println(Period.between(ld1, ld2).getYears());
System.out.println(Period.between(ld1, ld2).getDays());
System.out.println(Period.between(ld1, ld2).getMonths());
}
}