Comme la plupart des gens sont douloureusement conscients de maintenant, l'API Java pour la gestion des dates du calendrier (en particulier les classes java.util.Date
et java.util.Calendar
) sont un gâchis terrible.Pourquoi l'API de date Java (java.util.Date, .Calendar) est-elle si désordonnée?
Du haut de ma tête:
- date est mutable
- La date représente un horodatage, pas une date
- pas de manière facile de convertir entre les composants de date (jour, mois, année .. .) et date
- Calendrier est maladroit d'utiliser, et tente de combiner différents systèmes de calendrier dans une classe
This post résume assez bien, et JSR-310 aussi expire ces problèmes.
Maintenant, ma question est la suivante:
Comment ces classes ont dans le SDK Java? La plupart de ces problèmes semblent assez évidents (en particulier la date étant mutable) et auraient dû être faciles à éviter. Alors, comment est-ce arrivé? Pression de temps? Ou les problèmes sont-ils évidents seulement rétrospectivement? Je réalise que ce n'est pas strictement une question de programmation, mais je trouverais intéressant de comprendre comment la conception d'API pourrait aller si mal. Après tout, les erreurs sont toujours une bonne opportunité d'apprentissage (et je suis curieux).
Un double négatif est toujours mauvaise forme ... La date est mutable ne date est pas immuable. –
Heureusement, les nouvelles API Date et Heure de JSR-310, basées sur Joda-Time, seront livrées dans Java 7. –
Et DateFormat n'est pas conçu pour être thread-safe ... (http://bugs.sun.com /bugdatabase/view_bug.do?bug_id=4093418) – Arjan