- LocalDate类的基本使用
public class Test1_LocalDate { public static void main(String[] args) { // 0、获取本地日期对象(不可变对象) LocalDate ld = LocalDate.now(); // 年 月 日 System.out.println(ld); // 1、获取日期对象中的信息 int year = ld.getYear(); // 年 int month = ld.getMonthValue(); // 月(1-12) int day = ld.getDayOfMonth(); // 日 int dayOfYear = ld.getDayOfYear(); // 一年中的第几天 int dayOfWeek = ld.getDayOfWeek().getValue(); // 星期几 System.out.println(year); System.out.println(day); System.out.println(dayOfWeek); // 2、直接修改某个信息: withYear、withMonth、withDayOfMonth、withDayOfYear LocalDate ld2 = ld.withYear(2099); LocalDate ld3 = ld.withMonth(12); System.out.println(ld2); System.out.println(ld3); System.out.println(ld); // 3、把某个信息加多少: plusYears、plusMonths、plusDays、plusWeeks LocalDate ld4 = ld.plusYears(2); LocalDate ld5 = ld.plusMonths(2); // 4、把某个信息减多少:minusYears、minusMonths、minusDays、minusWeeks LocalDate ld6 = ld.minusYears(2); LocalDate ld7 = ld.minusMonths(2); // 5、获取指定日期的LocalDate对象: public static LocalDate of(int year, int month, int dayOfMonth) LocalDate ld8 = LocalDate.of(2099, 12, 12); LocalDate ld9 = LocalDate.of(2099, 12, 12); // 6、判断2个日期对象,是否相等,在前还是在后: equals isBefore isAfter System.out.println(ld8.equals(ld9));// true System.out.println(ld8.isAfter(ld)); // true System.out.println(ld8.isBefore(ld)); // false } }
- LocalTime类的基本使用
public class Test2_LocalTime { public static void main(String[] args) { // 0、获取本地时间对象 LocalTime lt = LocalTime.now(); // 时 分 秒 纳秒 不可变的 System.out.println(lt); // 1、获取时间中的信息 int hour = lt.getHour(); //时 int minute = lt.getMinute(); //分 int second = lt.getSecond(); //秒 int nano = lt.getNano(); //纳秒 // 2、修改时间:withHour、withMinute、withSecond、withNano LocalTime lt3 = lt.withHour(10); LocalTime lt4 = lt.withMinute(10); LocalTime lt5 = lt.withSecond(10); LocalTime lt6 = lt.withNano(10); // 3、加多少:plusHours、plusMinutes、plusSeconds、plusNanos LocalTime lt7 = lt.plusHours(10); LocalTime lt8 = lt.plusMinutes(10); LocalTime lt9 = lt.plusSeconds(10); LocalTime lt10 = lt.plusNanos(10); // 4、减多少:minusHours、minusMinutes、minusSeconds、minusNanos LocalTime lt11 = lt.minusHours(10); LocalTime lt12 = lt.minusMinutes(10); LocalTime lt13 = lt.minusSeconds(10); LocalTime lt14 = lt.minusNanos(10); // 5、获取指定时间的LocalTime对象: // public static LocalTime of(int hour, int minute, int second) LocalTime lt15 = LocalTime.of(12, 12, 12); LocalTime lt16 = LocalTime.of(12, 12, 12); // 6、判断2个时间对象,是否相等,在前还是在后: equals isBefore isAfter System.out.println(lt15.equals(lt16)); // true System.out.println(lt15.isAfter(lt)); // false System.out.println(lt15.isBefore(lt)); // true } }
- LocalDateTime类的基本使用
public class Test3_LocalDateTime { public static void main(String[] args) { // 0、获取本地日期和时间对象。 LocalDateTime ldt = LocalDateTime.now(); // 年 月 日 时 分 秒 纳秒 System.out.println(ldt); // 1、可以获取日期和时间的全部信息 int year = ldt.getYear(); // 年 int month = ldt.getMonthValue(); // 月 int day = ldt.getDayOfMonth(); // 日 int dayOfYear = ldt.getDayOfYear(); // 一年中的第几天 int dayOfWeek = ldt.getDayOfWeek().getValue(); // 获取是周几 int hour = ldt.getHour(); //时 int minute = ldt.getMinute(); //分 int second = ldt.getSecond(); //秒 int nano = ldt.getNano(); //纳秒 // 2、修改时间信息: // withYear withMonth withDayOfMonth withDayOfYear withHour // withMinute withSecond withNano LocalDateTime ldt2 = ldt.withYear(2029); LocalDateTime ldt3 = ldt.withMinute(59); // 3、加多少: // plusYears plusMonths plusDays plusWeeks plusHours plusMinutes plusSeconds plusNanos LocalDateTime ldt4 = ldt.plusYears(2); LocalDateTime ldt5 = ldt.plusMinutes(3); // 4、减多少: // minusDays minusYears minusMonths minusWeeks minusHours minusMinutes minusSeconds minusNanos LocalDateTime ldt6 = ldt.minusYears(2); LocalDateTime ldt7 = ldt.minusMinutes(3); // 5、获取指定日期和时间的LocalDateTime对象: // public static LocalDateTime of(int year, Month month, int dayOfMonth, int hour, // int minute, int second, int nanoOfSecond) LocalDateTime ldt8 = LocalDateTime.of(2029, 12, 12, 12, 12, 12, 1222); LocalDateTime ldt9 = LocalDateTime.of(2029, 12, 12, 12, 12, 12, 1222); // 6、 判断2个日期、时间对象,是否相等,在前还是在后: equals、isBefore、isAfter System.out.println(ldt9.equals(ldt8)); System.out.println(ldt9.isAfter(ldt)); System.out.println(ldt9.isBefore(ldt)); // 7、可以把LocalDateTime转换成LocalDate和LocalTime // public LocalDate toLocalDate() // public LocalTime toLocalTime() // public static LocalDateTime of(LocalDate date, LocalTime time) LocalDate ld = ldt.toLocalDate(); LocalTime lt = ldt.toLocalTime(); LocalDateTime ldt10 = LocalDateTime.of(ld, lt); } }
格式化日期对象DateTimeFormater
/**
* 目标:掌握JDK 8新增的DateTimeFormatter格式化器的用法。
*/
public class Test6_DateTimeFormatter {
public static void main(String[] args) {
// 1、创建一个日期时间格式化器对象出来。
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
// 2、对时间进行格式化
LocalDateTime now = LocalDateTime.now();
System.out.println(now);
String rs = formatter.format(now); // 正向格式化
System.out.println(rs);
// 3、格式化时间,其实还有一种方案。
String rs2 = now.format(formatter); // 反向格式化
System.out.println(rs2);
// 4、解析时间:解析时间一般使用LocalDateTime提供的解析方法来解析。
String dateStr = "2029年12月12日 12:12:11";
LocalDateTime ldt = LocalDateTime.parse(dateStr, formatter);
System.out.println(ldt);
}
}
JDK8日期(Period类)
除以了上新增的类,JDK8还补充了两个类,一个叫Period类、一个叫Duration类;这两个类可以用来对计算两个时间点的时间间隔。
其中Period用来计算日期间隔(年、月、日),Duration用来计算时间间隔(时、分、秒、纳秒)
可以用来计算两个日期之间相隔的年、相隔的月、相隔的日。只能两个计算LocalDate对象之间的间隔
/**
* 目标:掌握Period的作用:计算机两个日期相差的年数,月数、天数。
*/
public class Test7_Period {
public static void main(String[] args) {
LocalDate start = LocalDate.of(2029, 8, 10);
LocalDate end = LocalDate.of(2029, 12, 15);
// 1、创建Period对象,封装两个日期对象。
Period period = Period.between(start, end);
// 2、通过period对象获取两个日期对象相差的信息。
System.out.println(period.getYears());
System.out.println(period.getMonths());
System.out.println(period.getDays());
}
}
JDK8日期(Duration
public class Test8_Duration {
public static void main(String[] args) {
LocalDateTime start = LocalDateTime.of(2025, 11, 11, 11, 10, 10);
LocalDateTime end = LocalDateTime.of(2025, 11, 11, 11, 11, 11);
// 1、得到Duration对象
Duration duration = Duration.between(start, end);
// 2、获取两个时间对象间隔的信息
System.out.println(duration.toDays());// 间隔多少天
System.out.println(duration.toHours());// 间隔多少小时
System.out.println(duration.toMinutes());// 间隔多少分
System.out.println(duration.toSeconds());// 间隔多少秒
System.out.println(duration.toMillis());// 间隔多少毫秒
System.out.println(duration.toNanos());// 间隔多少纳秒
}
}
类)
接下来,我们学习Duration类。它是用来表示两个时间对象的时间间隔。可以用于计算两个时间对象相差的天数、小时数、分数、秒数、纳秒数;支持LocalTime、LocalDateTime、Instant等时间