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