这三个有相似的地方,以下总结一下工作中使用到的方法:
- 基本的创建时间
LocalDate ld = LocalDate.of(2017, 5, 10);
LocalTime lt = LocalTime.of(15, 0);
LocalDateTime ldt = LocalDateTime.of(ld, lt);
ld = ldt.toLocalDate();
lt = ldt.toLocalTime();
ldt = ld.atTime(15,0);
ldt = ld.atStartOfDay(); // ld这一天的凌晨
ld = LocalDate.now(); // 还有好多,就不一一列举了
还有String类型转成这三种类型
DateTimeFormatter sf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
LocalDate ld = LocalDate.parse("2017-05-10");
LocalTime lt = LocalTime.parse("15:15");
LocalDateTime ldt = LocalDateTime.parse("2017-05-10 15:16", sf); // 当转成LocalDateTime类型时,需要给出时间格式,具体原因没了解过。。。。
- 计算两个日期相差的天数:
LocalDate ld1 = LocalDate.of(2017, 5, 10);
LocalDate ld2 = LocalDate.of(2016, 4, 10);
Long days = ld1.toEpochDay() - ld2.toEpochDay(); // 输出是long类型的,LocalTime也有类型的方法不过算的是相差多少秒。
- 日月年
LocalDate ld = LocalDate.of(2017, 5, 10);
System.out.println(ld.getDayOfMonth()); // 10,这个月的哪一天
System.out.println(ld.getDayOfYear()); // 130,这一年的哪一天
System.out.println(ld.getMonthValue()); // 5,月份(int类型)
System.out.println(ld.getYear()); // 2017, 年份(int类型)
System.out.println(ld.getDayOfWeek().getValue()); // 3, 周几(int类型)
System.out.println(ld.getMonth()); // MAY, Month类型
判断闰年
System.out.println(ld.isLeapYear()); //false
ld.lengthOfMonth(); // 这一月的天数
- 目前就这么多,遇到后再更新。