Cómo convertir esta cadena de tiempo UNIX "1583388944,0912497" en un tipo Java Marca de tiempo?

y:

¿Cómo puedo convertir esta época UNIX "1,583,388,944.0912497" en un tipo Java Marca de tiempo?

¿Debo deshacerme de los números de precisión después del período con el fin de utilizar Instant.from * o Long.valueOf?

Gracias

Albahaca Bourque:

Dividir la cadena en dos partes, un recuento de segundos enteros y un recuento de nanosegundos.

Evitar el uso de la tecnología de punto flotante que se mantenga cotizando exactitud de distancia para la velocidad de ejecución.

String string = "1583388944.0912497" ;
String[] parts = string.split("\\.") ;
String part1 = parts[0] ; // 1583388944
String part2 = parts[1] ;  // 0912497

Analizar como enteros largos. Debemos multiplicar la segunda parte para conseguir nanosegundos.

long seconds = Long.parseLong( part1 ) ;
long nanos = Long.parseLong( part2 ) * 100 ;

Alimentación a un método de fábrica a una instancia de un Instantobjeto.

Instant instant = Instant.ofEpochSecond( seconds , nanos ) ;

Supongo que te gusta

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