Tengo un problema con la fecha de ejemplo de análisis de fecha:
SimpleDateFormat parserSDF=new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy", Locale.getDefault()); parserSDF.parse("Wed Oct 16 00:00:00 CEST 2013");
tiene excepción
Exactamente, quiero analizar esta fecha de formato a aaaa-MM-dd. Intento:
SimpleDateFormat parserSDF = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH); Date date = parserSDF.parse("Wed Oct 16 00:00:00 CEST 2013");
take: java.text.ParseException: fecha imposible de leer: “Wed oct 16 00:00:00 CEST 2013”
OK, me cambio y trabajo:
SimpleDateFormat parserSDF = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy", Locale.ENGLISH); Date date = parserSDF.parse("Wed Oct 16 00:00:00 CEST 2013");
Voy a suponer que Locale.getDefault()
para ti es pl-PL
ya que pareces estar en Polonia.
Por lo tanto, las palabras en inglés en las cadenas de fechas causan una fecha indescomible.
Una String
fecha polaca apropiada sería algo así como
"Wt paź 16 00:00:00 -0500 2013"
De lo contrario, cambie su Locale.ENGLISH
Locale
a Locale.ENGLISH
para que el objeto SimpleDateFormat
pueda analizar las fechas de String
con palabras en inglés.
En lugar de utilizar Locale.default
que usted y los demás a menudo no sepan cuál es el predeterminado, puede decidir usando locale.ENGLISH
porque veo que la fecha de su cadena es el formato en inglés. Si se encuentra en otros países, el formato será diferente.
Aquí está mi código de ejemplo:
public static void main(String[] args) { try { SimpleDateFormat parserSDF = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy", Locale.ENGLISH); Date date = parserSDF.parse("Wed Oct 16 00:00:00 CEST 2013"); System.out.println("date: " + date.toString()); } catch (ParseException ex) { ex.printStackTrace(); } }
El resultado será: date: Wed Oct 16 05:00:00 ICT 2013
. O bien, puede decidir qué parte de esta fecha se imprimirá utilizando sus campos.
Espero que esto ayude 🙂
Creo que la Excepción original se debe a Z
en su formato. Por documentación :
Z Time zone RFC 822 time zone -0800
lo más probable es que quisiste usar minúsculas z