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 :
- using System;
- using System.Collections.Generic;
- using System.Text;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main(string[] args)
- {
- DateTime dte1 = DateTime.Now;
- DateTime dte2 = DateTime.Now.AddHours(4);
- Console.WriteLine("Date 1 : " + dte1.ToString());
- Console.WriteLine("Date 2 : " + dte2.ToString());
- Console.WriteLine("OLE Date 1 : " + dte1.ToOADate().ToString());
- Console.WriteLine("OLE Date 2 : " + dte2.ToOADate().ToString());
- Console.WriteLine("INT OLE Date 1 : " + ((int)dte1.ToOADate()).ToString());
- Console.WriteLine("INT OLE Date 2 : " + ((int)dte2.ToOADate()).ToString());
- Console.WriteLine("Date 1 == Date 2 : " + (dte1 == dte2).ToString());
- Console.WriteLine("OLE Date 1 == OLE Date 2 : " + (dte1.ToOADate() == dte2.ToOADate()).ToString());
- Console.WriteLine("INT OLE Date 1 == INT OLE Date 2 : " + ((int)dte1.ToOADate() == (int)dte2.ToOADate()).ToString());
- Console.ReadKey();
- }
- }
- }
|
Sortie :
Date 1 : 11/16/2006 2:22:52 PM
Date 2 : 11/16/2006 6:22:52 PM
OLE Date 1 : 39037.5992162153
OLE Date 2 : 39037.7658828819
INT OLE Date 1 : 39037
INT OLE Date 2 : 39037
Date 1 == Date 2 : False
OLE Date 1 == OLE Date 2 : False
INT OLE Date 1 == INT OLE Date 2 : True
|