Deux Dates du même jour - Java - Programmation
Marsh Posté le 16-11-2006 à 14:06:28
TomZ a écrit : |
?
Marsh Posté le 16-11-2006 à 14:06:50
getDay() renvoie le jour de la semaine. C'est getDate() que tu cherches :
http://java.sun.com/j2se/1.4.2/doc [...] #getDate()
mais c'est déprécié, donc passe par un Calendar, ca sera mieux.
Marsh Posté le 16-11-2006 à 14:07:52
http://java.sun.com/j2se/1.3/docs/ [...] l#getDay()
ah oui, logique
Marsh Posté le 16-11-2006 à 14:13:30
sinon, euh...
pkoi ne pas simplement tronquer la date pour ne récupérer que yyyy-mm-dd et comparer si elles sont égales ?
sinon, une simple conversion en entier de l'objet date OLE (si java n'est pas trop pourri ça doit exister) te permettra d'isoler la partie "date" de ton objet.
donc tu pourras faire l'égalité sans problème.
la dernière solution, même si elle semble un peu sale, est la plus propre et la plus performante, puisque tu bosses directement avec la représentation physique de la date (la plupart des plateformes utilisent la représentation OLE pour les dates), sans avoir à faire des traîtements complexes
en gros, en .NET ça donne ça :
Code :
Code :
|
Sortie :
|
Marsh Posté le 16-11-2006 à 14:17:15
MagicBuzz a écrit : |
Marsh Posté le 16-11-2006 à 14:25:33
edit : pour être constructif, jakarta.apache.org/commons propose un CommonsLang avec DateUtils.isSameDay()
Marsh Posté le 16-11-2006 à 14:26:02
désolé, mais ça marche parfaitement, et c'est infiniment moins lourd que faire successivement des getdate() et autres 25 fois de suite pour finir avec 50 tests d'égalité
quand au format OLE pour les dates, c'est le format natif pour la plupart des plateformes, même Linux a laissé tombé le timestamp d'unix si je ne m'abuse
-- hé bé... je viens de jeter un oeil à la doc java... qu'est-ce que c'et pauvre comme langage... même les libs natives du C permettent de gérer les dates mieux que ça --
Marsh Posté le 16-11-2006 à 15:10:39
Avec Class GregorianCalendar c'est encore mieux c'est pas deprecated
Marsh Posté le 17-11-2006 à 01:05:18
ReplyMarsh Posté le 24-11-2006 à 08:45:38
tiens le .NET ça me rappelle une situation olé-olé ou j'ai dû me farcir tout le code source pour changer toutes les gestions de dates qui foiraient après une migration d'un server avec locale européenne vers américaine, 9/11 c'est bien le 11 septembre non ?
Marsh Posté le 24-11-2006 à 11:57:45
31/12/2006 = français et anglais
12/31/2006 = américain
en fait, c'est ça le plus chiant. parceque quand t'as que la locale générique "en", tu sais pas comment interpréter les dates
le mieux étant de travailler sous un des formats suivants :
int64 : format UNIX (millisecondes depuis chais plus quand)
float : format Microsoft/OLE (partie entière : nb jours depuis le 01/01/0001 et partie décimale = faction du jour)
YYYYMMDD H24:MI:SS : Format ISO chais plus combien, reconnu en natif par la plupart des SGBD et langages.
YYYY-MM-DD H24:MI:SS : format ISO chais plus combien, utilisé par le XML.
DD.MM.YYYY : format allemand, avec les "." comme séparateur, les dates ne peuvent être formatées que dans ce sens, donc pas de confusion possible.
Marsh Posté le 16-11-2006 à 14:05:02
Bonjour à tous ,
Je voudrais vous poser une question concernant la comparaison de deux dates en java.
Je voudrais savoir si deux dates (format YYYY-MM-DD hh:mm:ss) appartiennent au même jour.
Les méthodes getYear() getMonth() et getDay() fonctionnent mais elles marchent également pour deux dates si les deux dates ont 7 jours d'écart (c'est à dire si je compare en somme le 15/11/2006 et le 8/11/2006).
Pourriez-vous m'indiquer une autre méthode ?
Merci par avance