Cómo convertir ZonedDateTime a milisegundos en Java?

arun:

Estoy tratando de convertir a ZonedDateTime milisegundos mediante el siguiente código.

LocalDateTime ldt = LocalDateTime.now();
ZonedDateTime zonedDateTime =ldt.atZone(ZoneId.of(""Asia/Kolkata""));
zonedDateTime.toInstant().toEpochMilli();

Pero esta devuelve milisegundos según la hora local. Y no está considerando idDeZona.

Digamos Vamos LocalDateTime("2019-04-10T05:30"). Si puedo convertir esto a ZonedDateTimela Zona de Identificación ( "Asia / Calcuta") entonces yo estoy poniendo ( "2019-04-10T05:30+05:30[Asia/Kolkata]"). Entonces me convierto a EpochMilli (1554854400000) = ( "Wed Apr 10 2019 00:00:00") en UTC.

AxelH:

Está utilizando una Instantpara conseguir que la representación milisegundos. Instantánea no se basa Zona. Ahora, el tiempo de época está basado en el "1970-01-01T00: 00: 00Z", por lo que no debería tener la zona en ella.

Si desea crear una ZoneDateTimedesde el valor de la época, sólo tiene que crear una Instanten ese momento época y luego crear una ZonedDateTimecon la zona que desee:

//Let's create our zone time (just to keep your logic
LocalDateTime ldt = LocalDateTime.now();
ZonedDateTime zonedDateTime =ldt.atZone(ZoneId.of("Asia/Kolkata"));

//Then get the epoch on GMT
long e = zonedDateTime.toInstant().toEpochMilli();

Instant i = Instant.ofEpochMilli(e);
System.out.println(ZonedDateTime.ofInstant(i, ZoneId.systemDefault()));
System.out.println(ZonedDateTime.ofInstant(i, ZoneId.of("Asia/Kolkata")));

2019-04-12T05: 10: 31.016 + 02: 00 [Europa / París]
2019-04-12T08: 40: 31.016 + 05: 30 [Asia / Calcuta]

Nota: el código no debe ser utilizado como esto antes, no es necesario para obtener una LocalDateTimecontinuación, una ZonedDateTimepara crear finalmente una Instant. Esto es sólo para mostrar que incluso con una zona, esta será "perdido" en un punto.
Sólo tiene que utilizar:

long e = Instant.now().toEpochMilli();

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=137300&siteId=1
Recomendado
Clasificación