Conversión de cadena ISO 8601 a java.util.Date: mejores prácticas
¡Hola a todos! Soy un desarrollador Java principiante y me encontré con un problema al parsear fechas. Necesito convertir cadenas en formato ISO 8601 (por ejemplo, "2023-10-05T14:30:00Z" o "2023-10-05T17:30:00+03:00") a un objeto java.util.Date.
El problema es que uso SimpleDateFormat, pero a menudo da errores o resultados incorrectos. Por ejemplo, la cadena "2023-10-05T14:30:00Z" se parsea incorrectamente, y "2023-10-05T17:30:00+03:00" incluso lanza una ParseException. Aquí está mi código:
```java
String dateString = "2023-10-05T14:30:00Z";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
try {
Date date = sdf.parse(dateString);
System.out.println(date);
} catch (ParseException e) {
e.printStackTrace();
}
```
Entiendo que la 'Z' al final denota UTC, pero SimpleDateFormat parece no tener en cuenta la zona horaria. Además, cuando agrego un offset, como "+03:00", el formato se rompe.
¿Podrían indicarme cómo parsear correctamente cadenas ISO 8601 en Java? Tal vez haya una solución ya preparada.
No answers yet.
Inicia sesión para dejar una respuesta
Blogs