为什么JavaDateAPI(java.util.Date,.Calendar)如此混乱?
正如大多数人痛苦地意识到的,JavaAPI用于处理日历日期(特别是类)java.util.Date
和java.util.Calendar
)是一个可怕的烂摊子。
从我的头顶上:
- 日期是可变的
- 日期代表时间戳,而不是日期。
- 在日期组件(日、月、年.)之间进行转换不是一种简单的方法。和日期
- 日历使用起来很笨重,并试图将不同的日历系统组合成一个类。
这个职位总结得很好,而且JSR-310也说明了这些问题。
现在我的问题是:
这些类是如何进入JavaSDK的?这些问题中的大多数看起来相当明显(特别是日期是可变的),应该很容易避免。那它是怎么发生的?时间压力?还是只在回首时才会发现这些问题?
我意识到这并不是一个严格意义上的编程问题,但我会发现理解API设计是如何如此错误是很有趣的。毕竟,错误总是一个很好的学习机会(我很好奇)。