variable manejo horas fecha ejemplo declarar crear java java-8 timestamp java-time

fecha - manejo de horas en java



marca de tiempo larga a LocalDateTime (4)

Intenta con lo siguiente ..

long test_timestamp = 1499070300000L; LocalDateTime triggerTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(test_timestamp), TimeZone .getDefault().toZoneId());

Por defecto, 1499070300000 es int si no contiene l en final. También pasa el tiempo en milisegundos.

Tengo una marca de tiempo larga 1499070300 (equivalente a lunes, 03 de julio de 2017 16:25:00 +0800) pero cuando la convierto a LocalDateTime, obtengo 1970-01-18T16: 24: 30.300

Aquí está mi código

long test_timestamp = 1499070300; LocalDateTime triggerTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(test_timestamp), TimeZone .getDefault().toZoneId());


Necesitas pasar la marca de tiempo en milisegundos:

long test_timestamp = 1499070300000L; LocalDateTime triggerTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(test_timestamp), TimeZone.getDefault().toZoneId()); System.out.println(triggerTime);

Resultado:

2017-07-03T10:25

O use ofEpochSecond en ofEpochSecond lugar:

long test_timestamp = 1499070300L; LocalDateTime triggerTime = LocalDateTime.ofInstant(Instant.ofEpochSecond(test_timestamp), TimeZone.getDefault().toZoneId()); System.out.println(triggerTime);

Resultado:

2017-07-03T10:25


Pruebe con el Instant.ofEpochMilli() o Instant.ofEpochSecond() con él-

long test_timestamp = 1499070300L; LocalDateTime date = LocalDateTime.ofInstant(Instant.ofEpochMilli(test_timestamp ), TimeZone .getDefault().toZoneId());


Su problema es que la marca de tiempo no está en milisegundos, sino que se expresa en segundos desde la fecha de Época. Multiplique por 1000 su marca de tiempo o use el Instant.ofEpochSecond() .