Al tratar de transformar el formato de fecha, recibo una excepción: fecha indescifrable y no sé cómo solucionar este problema.Java: excepción de fecha inaplicable
Estoy recibiendo una cadena que representa una fecha del evento y me gustaría mostrar esta fecha en un formato diferente en la GUI.
Lo que estaba tratando de hacer es la siguiente:
private String modifyDateLayout(String inputDate){
try {
//inputDate = "2010-01-04 01:32:27 UTC";
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z").parse(inputDate);
return new SimpleDateFormat("dd.MM.yyyy HH:mm:ss").format(date);
} catch (ParseException e) {
e.printStackTrace();
return "15.01.2010";
}
}
De todos modos la línea
String modifiedDateString = originalDate.toString();
es ficticia. Me gustaría obtener una cadena de fecha en el siguiente formato:
dd.MM.yyyy HH: mm: ss
y el ejemplo cadena de entrada es la siguiente:
2010-01-04 01:32:27 GMT
¿alguien sabe cómo convertir la fecha de ejemplo (String) anterior en un formato de cadena dd.MM.yyyy HH: mm: ss?
¡Gracias!
Editar: He solucionado el formato de fecha de entrada incorrecto, pero aún así no funciona. Arriba está el método pegado y debajo está la imagen de la pantalla de la sesión de depuración.
alt text http://img683.imageshack.us/img683/193/dateproblem.png
#update me corrieron
String[] timezones = TimeZone.getAvailableIDs();
y no es UTC cadena de la matriz. Es un problema extraño.
hice un truco sucio que funciona:
private String modifyDateLayout(String inputDate){
try {
inputDate = inputDate.replace(" UTC", "");
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(inputDate);
return new SimpleDateFormat("dd.MM.yyyy HH:mm:ss").format(date);
} catch (ParseException e) {
e.printStackTrace();
return "15.01.2010";
}
}
Pero aún así yo preferiría para transformar la entrada original sin cortar zona horaria de distancia.
Este código está escrito para teléfonos Android con JDK 1.6.
Sé que esto es un hilo de hace mucho tiempo, pero para aclarar dudas con respecto a la excepción de análisis cuando "UTC" está en el formato de fecha. El código está roto en Android. [Informe de error de Android] (http://code.google.com/p/android/issues/detail?id=14963) – Creniale