Java库中的LocalDate类
Java库中的LocalDate类
类库设计者决定将保存时间与给时间点命名分开。所以标准Java类库分别包含了两个类:一个用来表示时间点的Date类;另一个是用来表示大家熟悉的日历表示法的LocalDate类。
将时间与日历分开是一种很好的面向对象设计。通常,最好使用不同的类表示不同的概念。
不要使用构造器来构造LocalDate类的对象。实际上,应当使用静态工厂方法代表你调用构造器。
下面表达式
LocalDate.now();
会构造一个新对象,表示构造这个对象时日期。
可以提供年、月和日来构造对应一个特定日期对象
LocalDate.of(1999,12,31);
当然,通常都希望将构造的对象保存在一个对象变量中:
LocalDate newYearsEve = LocalDate.of(1999,12,31);
一旦有了一个LocalDate对象,可以用方法getYear、getMonthValue和getDayOfMonth得到年、月和日:
int year = newYearsEve.getYear();//2022
int month = newYearsEve.getMonthValue();//1
int day = newYearsEve.getDayOfMonth();//15
看起来这个没多大意义,因为这些正是构造对象时使用的那些值。不过有时可能某个日期是计算得到的,你希望调用这些方法来得到更多信息。例如plusDays方法会得到一个新的LocalDate,如果把这个方法的对象,称为当前对象,这个新日期对象则是距当前对象指定天数的一个新日期:
LocalDate aThousandDaysLater = newYearsEve.plusDays(1000)
int year = aThousandDaysLater.getYear(); //2024
int month = aThousandDaysLater.getMonthValue();//10
int day = aThousandDaysLater.getDayOfMonth();//11
LocalDate类封装了实例域来维护所设置的日期。如果不查看源代码,就不可能知道类内部的日期表示。
参考书籍:
《java核心基础·卷一:基础知识(原版10)》
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步