关于使用jdk8自带的日期类getDayOfWeek()的详细解释

发布时间:2024年01月23日

问题引入

我们会发现getDayOfWeek()这个函数和其他自带函数不一样

直接写会报错


但是如果我们将他变成getDayOfWeek().getValue()

又能够正常运行,我们这次就来看看是为什么


解释

进入getDayOfWeek()源码查看

我们进入getDayOfWeek()的源码中查看

我们可以发现他给我们返回的是一个DayOfWeek对象类型数据

那我们可不可以把上一个代码的接收返回值的类型int改为DayOfWeek对象看看能不能正常运行

我们可以看到能够正常运行,返回的是一个对应星期的英文


深度进入DayOfWeek查看

继续进入DayOfWeek的源码查看

我们可以看到他是一个枚举类!并且枚举项就是为我们的星期的英文单词!

我们往下走可以看见,这不就是我们前面getDayOfWeek()返回的东西吗,

他返回了枚举项里面的数据,所以显示的是星期的英文单词


但是我们就想要就收int类型的数据啊!为什么要加getValue()才能不报错!

我们继续往下面翻源码,可以看见再DayOfWeek中有getValue()这个函数,它返回的是一个int类型数据!源码的注释中有写到用1~7表示星期


总结

所以呢我们可以用两种方法来接受getDayOfWeek()的返回值

①使用DayOfWeek对象接收

        LocalDateTime ldt = LocalDateTime.now();
        //获取星期
        DayOfWeek dayOfWeek = ldt.getDayOfWeek();
        System.out.println(dayOfWeek);

②使用getDayOfWeek().getValue()来返回值

        LocalDateTime ldt = LocalDateTime.now();
        //获取星期
        int dayOfWeek = ldt.getDayOfWeek().getValue();
        System.out.println(dayOfWeek);

文章来源:https://blog.csdn.net/zhuyuyaya/article/details/135786807
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。