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)》

最新文章

  1. xpath 总结
  2. Logistic回归分类算法原理分析与代码实现
  3. SQL Server数字辅助表的实现
  4. 发现磁盘的shell
  5. SQL 存储和触发器
  6. acess the C\c++ from the Java
  7. Hadoop 2 初探
  8. A06_RelativeLayout的属性设置
  9. POJ 3080 Blue Jeans (KMP)
  10. 如何在myeclipse8.5中使用maven
  11. C#6.0语法糖
  12. Android视频应用去广告学习实践
  13. uptime
  14. doT模板
  15. 根据优先关系矩阵使用逐次加一发构造优先函数(Java)
  16. 三、数据API-3
  17. react入门学习及总结
  18. 01背包-dp
  19. IntelliJ IDEA src下新建包, 没有层级结构
  20. 使用Vivado进行行为级仿真

热门文章

  1. SWPUCTF 2019 pwn writeup
  2. Kubernetes-API Server
  3. python3 迭代器&生成器
  4. go实现pdf电子签名-自动识别签名位置
  5. JAVA获取请求的IP地址
  6. sql改写优化:简单规则重组实现
  7. java源码——对文件内容的查找和替换(开始写界面咯)
  8. 【九度OJ】题目1065:输出梯形 解题报告
  9. 【剑指Offer】06. 从尾到头打印链表 解题报告(Java & python)
  10. 图片 Augmentation整理