Estoy tratando de analizar una cadena de fecha y hora en el siguiente formato:
2019-02-22 19:29:43+00:00
Estoy siguiendo esta guía: https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html
Esta fila en particular parece ser la cadena de marca de tiempo que estoy tratando de analizar para:
Z zone-offset offset-Z +0000; -0800; -08:00;
Aquí es lo que he creado, teniendo en cuenta que la guía:
String input = "2019-02-22 19:29:43+00:00";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssX");
LocalDateTime parsed = LocalDateTime.parse(input, formatter);
Pero me sale este error:
java.time.format.DateTimeParseException: Text '2019-02-22 19:29:43+00:00' could not be parsed, unparsed text found at index 22
Tratar yyyy-MM-dd HH:mm:ssXXX
. Esto debería solucionar tu problema.
Offset X y x:
Uno salidas carta sólo la hora, como '01', a menos que el minuto no es cero en cuyo caso el minuto es también de salida, como '0130'.
Dos cartas da salida a la hora y el minuto, sin un colon, tales como '0130'.
Tres cartas salidas de la hora y los minutos, con dos puntos, como '01: 30'.
Cuatro letras da salida a la hora y el minuto y segundo opcional, sin un colon, tales como '013015'.
Cinco letras da salida a la hora y el minuto y segundo opcional, con dos puntos, como '01: 30: 15'.
Seis o más letras lanza IllegalArgumentException.
A partir de la descripción debajo de la mesa: https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html
EDITAR:
Si desea formatear fechas con ese patrón y desea la misma cadena de salida se debe utilizar yyyy-MM-dd HH:mm:ssxxx
en su lugar (ver comentario Andreas' más adelante).