LocalDate使用
public class LocalDateTest {
public static void main(String[] args) {
//LocalDate的获取方式
//根据年月日初始化
LocalDate localDate1 = LocalDate.of(2019, Month.MAY, 6);
//获取当前日期
LocalDate now = LocalDate.now();
//根据字符串解析
LocalDate localDate2 = LocalDate.parse("2019-01-13");
System.out.println(localDate2.getYear()+"-"+localDate2.getMonthValue()+"-"+localDate2.getDayOfMonth());
//根据字符串和指定格式
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyyMMdd HHmmss");
DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime localDateTime = LocalDateTime.parse("20190509 121212", dtf);
System.out.println("------"+dtf2.format(localDateTime));
//更新替换
LocalDate localDate3 = localDate2.withMonth(02);
//获取这个月的最后一天
LocalDate localDate4 = localDate3.with(TemporalAdjusters.lastDayOfMonth());
DateTimeFormatter dtf4 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
System.out.println(dtf4.format(localDate4));
}
}
LocalTime使用
public class LocalTimeTest {
public static void main(String[] args) {
LocalTime localTime = LocalTime.of(11,12);
LocalTime localTime2 = LocalTime.of(11,12,59);
LocalTime localTime3 = LocalTime.parse("11:12:59");
DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalTime localTime4 = LocalTime.parse("2019-05-20 11:00:03",dtf2);
System.out.println(localTime4.getHour());
}
}
计算两个日期的间隔天数
public class DateApiDemo {
public static void main(String[] args) {
//循环遍历两个日期的天数或者计算间隔天数
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate start= LocalDate.of(2014, 3, 28);
LocalDate end= LocalDate.of(2014, 4, 1);
Period tenDays = Period.between(start, end);
//这里输出的是6 只能计算同月的天数间隔,不是正确的遍历方式
System.out.println("days--------"+tenDays.getDays());
//正确的遍历两个日期中间的每个日期
//方法一:距离法
long distance = ChronoUnit.DAYS.between(start,end);
for(int i=0;i<distance;i++){
System.out.println(dtf.format(start.plusDays(i)));
}
System.out.println(distance);
//方法二: 利用toEpochDay计算
System.out.println(end.toEpochDay() - start.toEpochDay());
}
}
后续用到的api 再补充