YO :
Estoy tratando de analizar una cadena con una fecha y hora en una zona de tiempo conocido. Las cadenas tienen el siguiente formato:
2019-03-07 00:05:00-05:00
He intentado esto:
package com.example.test;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
public class Test {
public static void main( String[] args ) {
ZoneId myTimeZone = ZoneId.of("US/Eastern");
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("YYYY-MM-dd HH:mm:ssXX");
ZonedDateTime zdt = ZonedDateTime.parse("2019-03-07 00:05:00-05:00", dateTimeFormatter.withZone(myTimeZone));
System.out.println(zdt);
}
}
Esta es la excepción lanzada:
Exception in thread "main" java.time.format.DateTimeParseException: Text '2019-03-07 00:05:00-05:00' could not be parsed at index 19
at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851)
at java.time.ZonedDateTime.parse(ZonedDateTime.java:597)
at com.example.test.Test.main(Test.java:24)
C:\Users\user\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 0 seconds)
Estoy usando Java 1.8.0_191.
amseager:
Utilice este patrón: yyyy-MM-dd HH:mm:ssXXX
A partir de los documentos :
Desplazamiento X y X: ... Dos cartas salidas de la hora y los minutos, sin los dos puntos, como '0130'. Tres cartas salidas de la hora y los minutos, con dos puntos, como '01: 30'.
Así que si su cadena contiene una zona horaria en el interior del colon, se debe utilizar 3 "X-es".
Y mayúscula significa "basado semanas de años", no uno normal (y).