为什么是 Java date API (java.util.Date, .日历)这么乱?
正如大多数人现在都痛苦地意识到的那样,用于处理日历日期(特别是类和)的Java API是一个可怕的混乱。java.util.Date
java.util.Calendar
在我的头顶上:
- 日期可变
- 日期表示时间戳,而不是日期
- 没有简单的方法可以在日期组件(日,月,年...)和日期之间进行转换
- 日历使用起来很笨拙,并且尝试将不同的日历系统组合成一个类
这篇文章很好地总结了这一点,JSR-310也解释了这些问题。
现在我的问题是:
这些类是如何进入Java SDK的?这些问题中的大多数似乎相当明显(特别是日期是可变的),应该很容易避免。那么它是如何发生的呢?时间压力?还是问题仅在回想起来就很明显?
我意识到这不是一个严格的编程问题,但我发现理解API设计如何出错很有趣。毕竟,错误总是一个很好的学习机会(我很好奇)。