我们常用的时间对象类基本都继承了时间框架接口Temporal,这里我们展示一下两个实现类Instant和LocalDateTime的常用方法
@Test
public void java_Time_Instant_Test(){
//获取Instant对象
Instant instant1 = Instant.now();
Instant instant2 = Instant.parse("2021-04-19T13:37:07.752Z");
//获取指定时间字段
int micro = instant2.get(ChronoField.MICRO_OF_SECOND);
int milli = instant2.get(ChronoField.MILLI_OF_SECOND);
int nano = instant2.get(ChronoField.NANO_OF_SECOND);
//比较时间前后相等
boolean after = instant2.isAfter(instant1);
boolean before = instant2.isBefore(instant1);
//增加或减去一段时间
Instant plus3 = instant2.plus(1, ChronoUnit.DAYS);
Instant plus4 = instant2.plus(1, ChronoUnit.HOURS);
Instant plus5 = instant2.plus(1, ChronoUnit.MINUTES);
Instant plus6 = instant2.plus(1, ChronoUnit.SECONDS);
Instant plus7 = instant2.plus(1, ChronoUnit.NANOS);
Instant minus3 = instant2.minus(1, ChronoUnit.DAYS);
Instant minus4 = instant2.minus(1, ChronoUnit.HOURS);
Instant minus5 = instant2.minus(1, ChronoUnit.MINUTES);
Instant minus6 = instant2.minus(1, ChronoUnit.SECONDS);
Instant minus7 = instant2.minus(1, ChronoUnit.NANOS);
//计算到另一个日期的时间换算成指定时间单位的值
long until3 = instant2.until(instant1, ChronoUnit.DAYS);
long until4 = instant2.until(instant1, ChronoUnit.HOURS);
long until5 = instant2.until(instant1, ChronoUnit.MINUTES);
long until6 = instant2.until(instant1, ChronoUnit.SECONDS);
long until7 = instant2.until(instant1, ChronoUnit.NANOS);
//更改指定时间字段
Instant with5 = instant2.with(ChronoField.MICRO_OF_SECOND, 2);
Instant with6 = instant2.with(ChronoField.MILLI_OF_SECOND, 2);
Instant with7 = instant2.with(ChronoField.NANO_OF_SECOND, 2);
}
@Test
public void java_Time_LocalDateTime_Test() {
//生成LocalDateTime对象
LocalDateTime localDateTime1 = LocalDateTime.now();
LocalDateTime localDateTime2 = LocalDateTime.of(2021, 1, 1, 13, 1, 1, 1);
LocalDateTime localDateTime3 = LocalDateTime.parse("2022-04-19T21:12:51.531");
//获取指定时间字段
int year1 = localDateTime2.get(ChronoField.YEAR);
int year2 = localDateTime2.get(ChronoField.YEAR_OF_ERA);
int month = localDateTime2.get(ChronoField.MONTH_OF_YEAR);
int day = localDateTime2.get(ChronoField.DAY_OF_MONTH);
int hour = localDateTime2.get(ChronoField.HOUR_OF_DAY);
int minute = localDateTime2.get(ChronoField.MINUTE_OF_HOUR);
int second = localDateTime2.get(ChronoField.SECOND_OF_MINUTE);
int nano = localDateTime2.get(ChronoField.NANO_OF_SECOND);
//比较时间前后相等
boolean after = localDateTime2.isAfter(localDateTime1);
boolean before = localDateTime2.isBefore(localDateTime1);
boolean equal = localDateTime2.isEqual(localDateTime1);
//增加或减去一段时间
LocalDateTime plus1 = localDateTime2.plus(1, ChronoUnit.YEARS);
LocalDateTime plus2 = localDateTime2.plus(1, ChronoUnit.MONTHS);
LocalDateTime plus3 = localDateTime2.plus(1, ChronoUnit.DAYS);
LocalDateTime plus4 = localDateTime2.plus(1, ChronoUnit.HOURS);
LocalDateTime plus5 = localDateTime2.plus(1, ChronoUnit.MINUTES);
LocalDateTime plus6 = localDateTime2.plus(1, ChronoUnit.SECONDS);
LocalDateTime plus7 = localDateTime2.plus(1, ChronoUnit.NANOS);
LocalDateTime minus1 = localDateTime2.minus(1, ChronoUnit.YEARS);
LocalDateTime minus2 = localDateTime2.minus(1, ChronoUnit.MONTHS);
LocalDateTime minus3 = localDateTime2.minus(1, ChronoUnit.DAYS);
LocalDateTime minus4 = localDateTime2.minus(1, ChronoUnit.HOURS);
LocalDateTime minus5 = localDateTime2.minus(1, ChronoUnit.MINUTES);
LocalDateTime minus6 = localDateTime2.minus(1, ChronoUnit.SECONDS);
LocalDateTime minus7 = localDateTime2.minus(1, ChronoUnit.NANOS);
//计算到另一个日期的时间换算成指定时间单位的值
long until1 = localDateTime2.until(localDateTime1, ChronoUnit.YEARS);
long until2 = localDateTime2.until(localDateTime1, ChronoUnit.MONTHS);
long until3 = localDateTime2.until(localDateTime1, ChronoUnit.DAYS);
long until4 = localDateTime2.until(localDateTime1, ChronoUnit.HOURS);
long until5 = localDateTime2.until(localDateTime1, ChronoUnit.MINUTES);
long until6 = localDateTime2.until(localDateTime1, ChronoUnit.SECONDS);
long until7 = localDateTime2.until(localDateTime1, ChronoUnit.NANOS);
//更改指定时间字段
LocalDateTime with1 = localDateTime2.with(ChronoField.YEAR, 2022);
LocalDateTime with2 = localDateTime2.with(ChronoField.MONTH_OF_YEAR, 2);
LocalDateTime with3 = localDateTime2.with(ChronoField.DAY_OF_MONTH, 2);
LocalDateTime with4 = localDateTime2.with(ChronoField.HOUR_OF_DAY, 14);
LocalDateTime with5 = localDateTime2.with(ChronoField.MINUTE_OF_HOUR, 2);
LocalDateTime with6 = localDateTime2.with(ChronoField.SECOND_OF_MINUTE, 2);
LocalDateTime with7 = localDateTime2.with(ChronoField.NANO_OF_SECOND, 2);
}
@Test
public void java_Time_LocalDate_Test() {
//生成LocalDate对象
LocalDate date1 = LocalDate.now();
LocalDate date2= LocalDate.of(2021, 1, 1);
LocalDate date3 = LocalDate.parse("2022-04-19");
//获取指定时间字段
int year1 = date2.get(ChronoField.YEAR);
int year2 = date2.get(ChronoField.YEAR_OF_ERA);
int month = date2.get(ChronoField.MONTH_OF_YEAR);
int day = date2.get(ChronoField.DAY_OF_MONTH);
//比较时间前后相等
boolean after = date1.isAfter(date2);
boolean before = date1.isBefore(date2);
boolean equal = date1.isEqual(date2);
//增加或减去一段时间
LocalDate plus1 = date2.plus(1, ChronoUnit.YEARS);
LocalDate plus2 = date2.plus(1, ChronoUnit.MONTHS);
LocalDate plus3 = date2.plus(1, ChronoUnit.DAYS);
LocalDate minus1 = date2.minus(1, ChronoUnit.YEARS);
LocalDate minus2 = date2.minus(1, ChronoUnit.MONTHS);
LocalDate minus3 = date2.minus(1, ChronoUnit.DAYS);
//计算到另一个日期的时间换算成指定时间单位的值
long until1 = date2.until(date1, ChronoUnit.YEARS);
long until2 = date2.until(date1, ChronoUnit.MONTHS);
long until3 = date2.until(date1, ChronoUnit.DAYS);
//更改指定时间字段
LocalDate with1 = date2.with(ChronoField.YEAR, 2022);
LocalDate with2 = date2.with(ChronoField.MONTH_OF_YEAR, 2);
LocalDate with3 = date2.with(ChronoField.DAY_OF_MONTH, 2);
}
@Test
public void java_Time_LocalTime_Test() {
//生成LocalTime对象
LocalTime localTime1 = LocalTime.now();
LocalTime localTime2 = LocalTime.of(13, 1, 1, 1);
LocalTime localTime3 = LocalTime.parse("21:15:07.823");
//获取指定时间字段
int hour = localTime2.get(ChronoField.HOUR_OF_DAY);
int minute = localTime2.get(ChronoField.MINUTE_OF_HOUR);
int second = localTime2.get(ChronoField.SECOND_OF_MINUTE);
int nano = localTime2.get(ChronoField.NANO_OF_SECOND);
//比较时间前后相等
boolean after = localTime1.isAfter(localTime2);
boolean before = localTime1.isBefore(localTime2);
//增加或减去一段时间
LocalTime plus1 = localTime2.plus(1, ChronoUnit.HOURS);
LocalTime plus2 = localTime2.plus(1, ChronoUnit.MINUTES);
LocalTime plus3 = localTime2.plus(1, ChronoUnit.SECONDS);
LocalTime plus4 = localTime2.plus(1, ChronoUnit.NANOS);
LocalTime minus1 = localTime2.minus(1, ChronoUnit.HOURS);
LocalTime minus2 = localTime2.minus(1, ChronoUnit.MINUTES);
LocalTime minus3 = localTime2.minus(1, ChronoUnit.SECONDS);
LocalTime minus4 = localTime2.minus(1, ChronoUnit.NANOS);
//计算到另一个日期的时间换算成指定时间单位的值
long until1 = localTime2.until(localTime1, ChronoUnit.HOURS);
long until2 = localTime2.until(localTime1, ChronoUnit.MINUTES);
long until3 = localTime2.until(localTime1, ChronoUnit.SECONDS);
long until4 = localTime2.until(localTime1, ChronoUnit.NANOS);
//更改指定时间字段
LocalTime with1 = localTime2.with(ChronoField.HOUR_OF_DAY, 14);
LocalTime with2 = localTime2.with(ChronoField.MINUTE_OF_HOUR, 2);
LocalTime with3 = localTime2.with(ChronoField.SECOND_OF_MINUTE, 2);
LocalTime with4 = localTime2.with(ChronoField.NANO_OF_SECOND, 2);
}