简述
相对Date来说,LocalDate作为一个Java 8的新特性,处理时间更加的通用。
基本应用
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.Period;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
public class Test{
public static void main(String[] args) {
//初始化方式一,直接获取当前的时间
LocalDate mLocalDate1 = LocalDate.now();
//初始化方式二
LocalDate mLocalDate2 = LocalDate.parse("2022-12-22");
//初始化方式二
LocalDate mLocalDate3 = LocalDate.parse("2022年12月23日",DateTimeFormatter.ofPattern("yyyy年MM月dd日"));
//时间转String方式一
System.out.println(mLocalDate3);//输出格式为2022-12-21
//时间转String方式二
System.out.println(mLocalDate3.format(DateTimeFormatter.ofPattern("yyyy年MM月dd日")));//输出格式为2022年12月23日
//时间比较
System.out.println(mLocalDate1.isAfter(mLocalDate2));//时间一是否在时间二之后
System.out.println(mLocalDate1.isBefore(mLocalDate2));//时间一是否在时间二之前
System.out.println(mLocalDate1.isEqual(mLocalDate2));//时间一和时间二一样
//时间判断
System.out.println(mLocalDate1.isLeapYear());//是否为闰年
System.out.println(mLocalDate1.lengthOfMonth());//当月的最后一天为几号
System.out.println(mLocalDate1.lengthOfYear());//当年是最后一天(365 or 366(闰年))
//时间的间隔时长
Period period = mLocalDate1.until(LocalDate.parse("2018-03-28"));
System.out.println(period.getDays());//间隔天数
System.out.println(period.getMonths());//间隔月数
long val = mLocalDate1.until(LocalDate.parse("2018-03-28"), ChronoUnit.DAYS);//获取间隔的天数
System.out.println(val);
//修改日期
LocalDate localDate4 = mLocalDate1.withDayOfMonth(3);//复制日期并将月份改为3月
System.out.println(localDate4);
LocalDateTime time = localDate4.atTime(12,59);//将LocalDate转为LocalDateTime并指定时间
}
}