Bonjour,
Il y a un point où Java, que j'apprécie beaucoup, est particulièrement mauvais : la gestion des dates.
Avec une nouvelle API proposée tous les cinq ans, jamais implémentée de manière totalement utilisable, on a subi en programmation tout ce que l'on pouvait de lourd.
- java.util.Date aux setters dépréciés quasi d'origine et ne sachant pas bien gérer le siècle,
- java.util.Calendar avec le mois basé sur zéro (on rêve !),
- joda.time plus ou moins officiellement intégré, et puis non, on change tout en java.time, et refactoring partout...
Java 8 n'y a encore pas manqué.
MessageFormat.format("C''est arrivé le : {0,date}", localDate);
avec un java.time.LocalDate en paramètre.
plante sur un "Cannot format given Object as a Date".
Car l'API n'est, comme d'habitude, pas finie.
Qu'on ne vienne pas me dire qu'il n'était pas possible de faire sa conversion, par défaut et à la volée, par le ZoneId du système en une java.util.Date pour faire que les centaines d'entrées de Resources.properties que j'ai et qui contiennent des dates puissent continuer à fonctionner sans interventions à tous les endroits où elles sont utilisées, dans le but d'y mettre une méthode privée qui alourdit le tout pour faire la conversion adéquate.
Existe t-il une manière facile de résoudre se problème et pallier à ce nouvel échec des concepteurs de Java ?
Je suis un peu exaspéré, j'en suis désolé, mais les dates en Java, je n'ai jamais vu un ratage pareil.
Merci !
Partager