// LocalDateTime是一个不可变的日期时间对象,代表日期时间,通常被视为年 - 月 - 日 - 时 - 分 - 秒。
// 也可以访问其他日期和时间字段,例如日期,星期几和星期。 时间表示为纳秒精度。
// 例如,值“2007年10月2日在13:45.30.123456789”可以存储在LocalDateTime 。
// 当前系统时间 从默认时区的系统时钟获取当前的日期时间。
LocalDateTime now = LocalDateTime.now();
//2021-10-12T08:57:28.296
System.out.println(now);
// 自定义日期时间 可以 LocalDateTime.of 有多种重载
LocalDateTime now1 = LocalDateTime.of(2020, 11, 10, 13, 30, 30);
System.out.println(now1); //2020-11-10T13:30:30
// 两个日期的对比
System.out.println(now.compareTo(now1)); //1
// 判断两个日期是否相等
System.out.println(now.equals(now1)); //false
// 格式化日期时间
System.out.println(now.format(DateTimeFormatter.ISO_DATE)); //2021-10-12
//获取日 在当前月是第几天
System.out.println(now1.getDayOfMonth()); //10
// 获取当前日 是周几
System.out.println(now1.getDayOfWeek()); //TUESDAY
// 获取当前日在今年是第多少天
System.out.println(now1.getDayOfYear()); //315
// 获取时
System.out.println(now1.getHour()); //30
// 获取分
System.out.println(now1.getMinute());
// 获取秒
System.out.println(now1.getSecond()); //30
//获取年份字段。
System.out.println(now1.getYear()); //2020
// 使用 Month枚举获取月份字段。
System.out.println(now1.getMonth()); //NOVEMBER
// 获取当前日期的月份 数字 1到12
System.out.println(now1.getMonthValue()); //11
// 获取纳秒
System.out.println(now1.getNano());
// 判断日期1是否在日期2后面
System.out.println(now.isAfter(now1)); //true
//判断日期1 是否在日期2前面
System.out.println(now.isBefore(now1));//false
// 判断两个日期是否相等
System.out.println(now1.isEqual(now)); //false
System.out.println(now1); //2020-11-10T13:30:30
//在小时上增加或者减少指定的时长 负数增加
System.out.println(now1.minusHours(10)); //2020-11-10T03:30:30
System.out.println(now1.minusHours(-10)); //2020-11-10T23:30:30
//在分钟上增加或者减少指定的分钟,负数增加
System.out.println(now1.minusMinutes(10)); //2020-11-10T13:20:30
System.out.println(now1.minusMinutes(-10)); //2020-11-10T13:40:30
// 在秒上增加或者减少指定的秒数 负数增加
System.out.println(now1.minusSeconds(10)); //2020-11-10T13:30:20
System.out.println(now1.minusSeconds(-10)); //2020-11-10T13:30:40
// 在日期上增加或者减少指定的天数 负数增加
System.out.println(now1.minusDays(3)); //2020-11-07T13:30:30
System.out.println(now1.minusDays(-3)); //2020-11-13T13:30:30
//在月份上增加或者减少指定的月 负数增加
System.out.println(now1.minusMonths(1)); //2020-10-10T13:30:30
System.out.println(now1.minusMonths(-1)); //2020-12-10T13:30:30
// 在年份上增加或者减少年份 负数增加
System.out.println(now1.minusYears(1)); //2019-11-10T13:30:30
System.out.println(now1.minusYears(-1)); //2021-11-10T13:30:30
// 在周期上增加或者减少指定的周数 负数增加
System.out.println(now1.minusWeeks(3)); //2020-10-20T13:30:30
System.out.println(now1.minusWeeks(-3)); //2020-12-01T13:30:30
// 在纳秒上增加或者减少指定的纳秒数 负数增加
System.out.println(now1.minusNanos(50000)); //2020-11-10T13:30:29.999950
System.out.println(now1.minusNanos(-50000)); //2020-11-10T13:30:30.000050
//在小时上增加或者减少指定的时长
System.out.println(now1.plusSeconds(10)); //2020-11-10T13:30:40
System.out.println(now1.plusSeconds(-10)); //2020-11-10T13:30:20
//在分钟上增加或者减少指定的分钟,
System.out.println(now1.plusMinutes(10)); //2020-11-10T13:40:30
System.out.println(now1.plusMinutes(-10)); //2020-11-10T13:20:30
// 在秒上增加或者减少指定的秒数
System.out.println(now1.plusHours(10)); //2020-11-10T23:30:30
System.out.println(now1.plusHours(-10)); //2020-11-10T03:30:30
// 在日期上增加或者减少指定的天数 负数增加
System.out.println(now1.plusDays(3)); //2020-11-13T13:30:30
System.out.println(now1.plusDays(-3)); //2020-11-07T13:30:30
//在月份上增加或者减少指定的月
System.out.println(now1.plusMonths(1)); //2020-12-10T13:30:30
System.out.println(now1.plusMonths(-1)); //2020-10-10T13:30:30
// 在年份上增加或者减少年份
System.out.println(now1.plusYears(1)); //2021-11-10T13:30:30
System.out.println(now1.plusYears(-1)); //2019-11-10T13:30:30
// 在周期上增加或者减少指定的周数
System.out.println(now1.plusWeeks(3)); //2020-12-01T13:30:30
System.out.println(now1.plusWeeks(-3)); //2020-10-20T13:30:30
// 在纳秒上增加或者减少指定的纳秒数
System.out.println(now1.plusNanos(50000)); //2020-11-10T13:30:30.000050
System.out.println(now1.plusNanos(-50000)); //2020-11-10T13:30:29.999950
//4位数年份,从右到左,不够用0替代 ,替换当前时间的年份
System.out.println(now1.withYear(2001)); //2001-11-10T13:30:30
// 替换当前月份 1-12
System.out.println(now1.withMonth(5)); //2020-05-10T13:30:30
//替换当前天
System.out.println(now1.withDayOfMonth(1)); //2020-11-01T13:30:30
// 替换当前小时 0到23直接
System.out.println(now1.withHour(20)); //2020-11-10T20:30:30
// 替换分钟
System.out.println(now1.withMinute(59)); //2020-11-10T13:59:30
// 替换秒数
System.out.println(now1.withSecond(59)); //2020-11-10T13:30:59
//替换纳秒
System.out.println(now1.withNano(50000)); //2020-11-10T13:30:30.000050
// 返回当前年份指定的天数日期
System.out.println(now1.withDayOfYear(100)); //2020-04-09T13:30:30