J'ai peut-être une autre piste
Tu devrais vérifier ta locale par defaut
J'ai fait les testes suivants sur ma machines
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| package routines;
import java.util.Date;
import java.util.Locale;
public class TestDate {
public static void main(String[] args) {
System.out.println(Locale.getDefault());
//fr_FR
System.out.println(TalendDate.isDate("Wed Oct 16 00:00:00 +0200 2013","E MMM dd HH:mm:ss Z yyyy"));
//false
System.out.println(TalendDate.isDate("jeu. mars 31 15:58:24 +0200 2016","E MMM dd HH:mm:ss Z yyyy"));
//true
System.out.println(TalendDate.formatDate("E MMM dd HH:mm:ss Z yyyy", new Date()));
//jeu. mars 31 16:51:37 +0200 2016
try{
System.out.println(TalendDate.parseDate("E MMM dd HH:mm:ss Z yyyy" ,"jeu. mars 31 15:58:24 +0200 2016"));
//Thu Mar 31 15:58:24 CEST 2016
}catch(Exception e){
e.printStackTrace();
}
try{
System.out.println(TalendDate.parseDate("E MMM dd HH:mm:ss Z yyyy" ,"Wed Oct 16 00:00:00 CEST 2013"));
}catch(Exception e){
e.printStackTrace();
/*
java.lang.RuntimeException: java.text.ParseException: Unparseable date: "Wed Oct 16 00:00:00 CEST 2013"
at routines.TalendDate.parseDate(TalendDate.java:895)
at routines.TalendDate.parseDate(TalendDate.java:839)
at routines.TestDate.main(TestDate.java:33)
Caused by: java.text.ParseException: Unparseable date: "Wed Oct 16 00:00:00 CEST 2013"
at java.text.DateFormat.parse(Unknown Source)
at routines.TalendDate.parseDate(TalendDate.java:881)
... 2 more
*/
}
}
} |
Puis j'ai changé ma locale par défaut par l'anglais
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| package routines;
import java.util.Date;
import java.util.Locale;
public class TestDate {
public static void main(String[] args) {
Locale.setDefault(Locale.US);
System.out.println(Locale.getDefault());
//en_US
System.out.println(TalendDate.isDate("Wed Oct 16 00:00:00 +0200 2013","E MMM dd HH:mm:ss Z yyyy"));
//true
System.out.println(TalendDate.isDate("jeu. mars 31 15:58:24 +0200 2016","E MMM dd HH:mm:ss Z yyyy"));
//false
System.out.println(TalendDate.formatDate("E MMM dd HH:mm:ss Z yyyy", new Date()));
//Thu Mar 31 16:58:16 +0200 2016
try{
System.out.println(TalendDate.parseDate("E MMM dd HH:mm:ss Z yyyy" ,"jeu. mars 31 15:58:24 +0200 2016"));
}catch(Exception e){
e.printStackTrace();
/*
java.lang.RuntimeException: java.text.ParseException: Unparseable date: "jeu. mars 31 15:58:24 +0200 2016"
at routines.TalendDate.parseDate(TalendDate.java:895)
at routines.TalendDate.parseDate(TalendDate.java:839)
at routines.TestDate.main(TestDate.java:31)
Caused by: java.text.ParseException: Unparseable date: "jeu. mars 31 15:58:24 +0200 2016"
at java.text.DateFormat.parse(Unknown Source)
at routines.TalendDate.parseDate(TalendDate.java:881)
*/
}
try{
System.out.println(TalendDate.parseDate("E MMM dd HH:mm:ss Z yyyy" ,"Wed Oct 16 00:00:00 CEST 2013"));
//Wed Oct 16 00:00:00 CEST 2013
}catch(Exception e){
e.printStackTrace();
}
}
} |
Selon la locale courante le comportement est différent.
Ajoute un
tPreJob + tJava qui fait
System.out.println(java.util.Locale.getDefault());
et si vois que tu es en français tu as 2 options :
Soit tu modifies le code du tJava par
java.util.Locale.setDefaut(java.util.Locale.Locale.US)
Soit tu ajoutes les paramètres suivant à la JVM dans l'onglet "Paramètres avancés" de la vue éxécuter
-Duser.language=en
-Duser.country=US
Partager