Catégories
Talend

TalendDate compareDate

Il existe un bogue sur la méthode TalendDate.compareDate (Date d1, Date d2, String pattern).
En effet le résultat est faux si le paramètre « pattern » est défini avec le format « dd/MM/yyyy ».

Pour rappel :

• CompareDate retourne 0 si d1 = d2
• CompareDate retourne 1 si d1 > d2
• CompareDate retourne -1 si d1 < d2

Exemple dans un tJava :


//On vérifie que le 28/02/2008 est bien inférieur à Sysdate (19/05/2011)
Date DT_FIN = TalendDate.parseDate("dd/MM/yyyy", "28/02/2008");

//Avec le pattern à la française, la méthode retourne 1 => KO
System.out.println(TalendDate.compareDate(DT_FIN, 
                   TalendDate.getCurrentDate(), "dd/MM/yyyy"));

//Avec le pattern anglophone, la méthode retourne -1 => OK
System.out.println(TalendDate.compareDate(DT_FIN, 
                   TalendDate.getCurrentDate(), "yyyy/MM/dd"));

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *