Le modèle est faux. Vous avez un 3-lettre jour abréviation, donc il doit être EEE
. Vous avez un 3 lettres de l'abréviation, donc il doit être MMM
. Comme ceux du jour et du mois abréviations sont de paramètres régionaux sensible, vous souhaitez spécifier explicitement l' SimpleDateFormat
paramètres régionaux de l'anglais aussi bien, sinon il va utiliser la plate-forme de paramètres régionaux par défaut qui peuvent ne pas être anglais en soi.
public static void main(String[] args) throws Exception {
String target = "Thu Sep 28 20:29:30 JST 2000";
DateFormat df = new SimpleDateFormat("EEE MMM dd kk:mm:ss z yyyy", Locale.ENGLISH);
Date result = df.parse(target);
System.out.println(result);
}
Cela s'imprime ici
Thu Sep 28 07:29:30 BOT 2000
ce qui est correct comme pour mon fuseau horaire.
Je voudrais également reconsidérer si vous n'auriez pas plutôt faire un usage HH
au lieu de kk
. Lire la javadoc pour plus de détails sur valide les modèles.