二 日期和时间API
2.1 LocalDate2.2 LocalTime2.3 LocalDateTime
二 日期和时间API 2.1 LocalDateLocalDate是带有年、月、日的日期。为了构建LocalDate对象,可以使用now或of静态方法.与UNIX和java.util.Date中使用的月从0开始计算而年从1900开始计算的不规则的惯用法不同,你需要提供通常使用的月份的数字。或者,你可以使用Month枚举。除了LocalDate之外,还有MonthDay、YearMonth和Year类可以描述部分日期。例如,12月25日(没有指定年份)可以表示成一个MonthDay对象。TemporalAdjusters类提供了大量用于常见调整的静态方法。你可以将调整方法的结果传递给with方法。
package Date;
import java.time.DayOfWeek;
import java.time.Instant;
import java.time.LocalDate;
import java.time.Month;
import java.time.temporal.TemporalAdjuster;
import java.time.temporal.TemporalAdjusters;
public class LocalDateWays {
public static void main(String[] args) {
// 获取当前日期
LocalDate localDate = LocalDate.now();
System.out.println("当前日期"+localDate);
// 指定日期
LocalDate date = LocalDate.of(2021, 12, 1);
System.out.println("当前日期"+date);
// 前多少天
LocalDate days = localDate.plusDays(-5);
System.out.println("当前日期"+days);
// 前多少月
LocalDate months = localDate.plusMonths(1);
System.out.println("当前日期"+months);
// 前多少年
LocalDate years = localDate.plusYears(-1);
//LocalDate years = localDate.plusYears(1);
System.out.println("当前日期"+years);
// 某月的第一个星期二
LocalDate day = LocalDate.of(years.getYear(), Month.from(months), 1).with(TemporalAdjusters.nextOrSame(DayOfWeek.TUESDAY));
System.out.println(day);
}
}
2.2 LocalTime
LocalTime表示当日时刻,例如15:30:00。可以用now或of方法创建其实例。plus和minus操作是按照一天24小时循环操作的。
package Date;
import java.time.LocalTime;
public class LocalTimeWays {
public static void main(String[] args) {
// 当前时间
LocalTime time = LocalTime.now();
System.out.println("当前时间"+time);
// 指定时间
LocalTime localTime = LocalTime.of(12, 30);
System.out.println("当前时间"+localTime);
// 加上多少时间
LocalTime plusHours = time.plusHours(3);
LocalTime plusMinutes = time.plusMinutes(60);
LocalTime plusSeconds = time.plusSeconds(60);
// 减去多少时间
LocalTime minusHours = time.minusHours(3);
LocalTime minusMinutes = time.minusMinutes(30);
LocalTime minusSeconds = time.minusSeconds(30);
}
}
2.3 LocalDateTime
其实就是前两者的结合
package Date;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
public class LocalDateTimeWays {
public static void main(String[] args) {
LocalTime localTime = LocalTime.now();
LocalDate localDate = LocalDate.now();
// LocalDateTime包括LocalDate和LocalTime
LocalDateTime localDateTime = LocalDateTime.of(localDate, localTime);
System.out.println("localDateTime = " + localDateTime);
LocalDateTime dateTime = LocalDateTime.now();
System.out.println(dateTime);
//LocalDateTime 和 LocalDate, LocalTime 相互转换
LocalDate localDate1 = localDateTime.toLocalDate();
LocalTime localTime1 = localDateTime.toLocalTime();
}
}



