时间和日期API

Java 8新特性探究(七)深入解析日期和时间-JSR310

淺唱寂寞╮ 提交于 2019-12-05 02:22:08
博客一个月没更新了,这次给大家讲下java8时间与日期API。 众所周知,日期是商业逻辑计算一个关键的部分,任何企业应用程序都需要处理时间问题。应用程序需要知道当前的时间点和下一个时间点,有时它们还必须计算这两个时间点之间的路径 。但java之前的日期做法太令人恶心了,我们先来吐槽一下 吐槽java.util.Date跟Calendar Tiago Fernandez做过一次投票,选举最烂的JAVA API,排第一的EJB2.X,第二的就是日期API。 槽点一 最开始的时候,Date既要承载日期信息,又要做日期之间的转换,还要做不同日期格式的显示,职责较繁杂(不懂单一职责,你妈妈知道吗?纯属恶搞~哈哈) 后来从JDK 1.1 开始,这三项职责分开了: 使用Calendar类实现日期和时间字段之间转换; 使用DateFormat类来格式化和分析日期字符串; 而Date只用来承载日期和时间信息。 原有Date中的相应方法已废弃。不过,无论是Date,还是Calendar,都用着太不方便了,这是API没有设计好的地方。 槽点二 坑爹的year和month Date date = new Date(2012,1,1); System.out.println(date); 输出Thu Feb 01 00:00:00 CST 3912 观察输出结果,year是2012+1900,而month