2010-10-07 13 views
2

J'ai vu d'innombrables messages de forum se plaindre de problèmes dans GWT lors du traitement des dates. Je ne suis toujours pas très clair sur ce qui est "faux" avec la gestion de la date, quelles considérations spéciales doivent être faites, et quand/où/pourquoi des méthodes comme Date.setMinutes (int minutes) ne devraient pas être utilisées.Une explication détaillée de ce qui est «faux» avec la gestion de la date dans GWT

Quelqu'un a-t-il des commentaires?

+0

Comme il n'y a pas de classe Calendar, beaucoup de problèmes sont survenus dans "l'ancien" Java avant l'implémentation de la classe Calendar, et sont maintenant de retour avec GWT. Je lis ici un excellent conseil: http://blog.gerardin.info/archives/674 - transfère toujours la logique des dates du côté serveur, et reste la plus simple possible sur le client. J'espère que quelqu'un sera en mesure de faire une explication plus détaillée. – igorbel

+0

Et la classe Calendar est implémentée correctement ...? Je veux dire que c'est utile et facile à utiliser? –

+0

@ Paweł: il a l'avantage qu'il n'est pas montré comme obsolète;) Mais je suis d'accord que cela pourrait certainement être plus facile à utiliser. –

Répondre

3

Au début de Java (c'est-à-dire, Java 1.0), l'API de date/heure consistait en grande partie (uniquement?) En la classe Date. Les gens de Java étaient conscients qu'il manquait de robustesse, donc ils ont ajouté la classe Calendar dans Java 1.1 et ont essayé de changer la classe Date en un objet valeur par deprecating most of it. Malheureusement, la classe Calendar elle-même n'était pas très bien pensée (voir here) et nous sommes coincés avec ce que beaucoup considèrent comme une monstruosité.

Apporter nous jusqu'à aujourd'hui, GWT soutient Date de parce que, eh bien ... comment pouvez-vous vivre sans dates ?, mais ne supporte pas le calendrier/GregorianCalendar/TimeZone parce qu'il est si laid et sûrement il doit être meilleure réponse. Malheureusement, personne n'y pense depuis plus de 3 ans en janvier 2007 et marked as planned en avril 2008.

En bref, utilisez les méthodes obsolètes Date dans votre code GWT, pour ce que vous devez faire.

EDIT: la classe CalendarUtil de GWT peut également être utile.

+1

Eh bien, il est extrêmement difficile de bien faire les choses. Les problèmes de date et heure sont assez complexes. Tant de gens ont essayé et échoué. La classe de date est au moins basée sur l'UTC, nous ne serions pas très heureux d'avoir quelque chose comme la structure DateTime de .Net (bien que son API soit plutôt sympa). –

+1

Je ne doute pas qu'il est extrêmement difficile de bien faire les choses. J'ai écouté un podcast une fois où l'un des gars de Java api parlait de combien il était difficile d'encapsuler la notion abstraite d'un calendrier. Il a donné un exemple (IIRC) du thaï ayant quelque chose comme dix calendriers différents, où chacun a un nombre différent de jours dans la semaine. Cela ressemble à un problème très difficile. – Tony

Questions connexes