El patrón es erróneo. Tiene una abreviatura de día de 3 letras, por lo que debe ser EEE
. Tiene una abreviatura de tres letras, por lo que debe ser MMM
. Como esas abreviaturas de día y de mes son sensibles a la configuración regional, también le gustaría especificar explícitamente la configuración regional SimpleDateFormat
en inglés, de lo contrario, utilizará la configuración regional predeterminada de la plataforma, que puede no ser en sí inglés.
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);
}
esto aquí
Thu Sep 28 07:29:30 BOT 2000
impresiones que es correcta según mi zona horaria.
También lo reconsideraría si no quisiera utilizar HH
en lugar de kk
. Lea el javadoc para obtener detalles sobre patrones válidos.
clases de fecha y hora para tu información, la problemática antiguos, como ['java.util.Date'] (https://docs.oracle.com/javase/8/docs/api/java/util/Date.html), [' java.util.Calendar'] (https: //docs.oracle.com/javase/8/docs/api/java/util/Calendar.html), y 'java.text.SimpleTextFormat' ahora son [legacy] (https://en.wikipedia.org/wiki/Legacy_system), suplantado por las clases [java.time] (https://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html). Consulte [Tutorial de Oracle] (https://docs.oracle.com/javase/tutorial/datetime/TOC.html). –