LocalDate,LocalTime,LocalDateTime类的基本使用

  • 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等时间

  • 18
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值