Как известно большинству людей, API Java для обработки дат календаря (в частности, классов java.util.Date
и java.util.Calendar
) - ужасный беспорядок.
Сверху моей головы:
- Дата изменена.
- Дата представляет собой метку времени, а не дату
- нет простого способа конвертировать между компонентами даты (день, месяц, год...) и дата
- Календарь неудобен для использования и пытается объединить различные системы календаря в один класс
Этот пост подводит итог, и JSR-310 также исчерпывает эти проблемы.
Теперь мой вопрос:
Как эти классы вошли в Java SDK? Большинство из этих проблем кажутся довольно очевидными (особенно Дата изменчива), и их было бы легко избежать. Итак, как это произошло? Время поджимает? Или проблемы очевидны только в ретроспективе?
Я понимаю, что это не вопрос программирования, но мне было бы интересно понять, как дизайн API может ошибиться. В конце концов, ошибки всегда являются хорошей возможностью для изучения (и мне любопытно).