如何将此 unix 纪元字符串“1583388944.0912497”转换为 Java 时间戳类型?
How to turn this unix epoch string "1583388944.0912497" into a Java Timestamp type?
如何将这个 unix 纪元“1583388944.0912497”转换为 Java 时间戳类型?
为了使用 Instant.from* 或 Long.valueOf,我应该去掉句点后的精度数字吗?
谢谢
将字符串分成两部分,整秒数和纳秒数。
避免使用浮点技术,因为它会牺牲准确性来换取执行速度。
String string = "1583388944.0912497" ;
String[] parts = string.split("\.") ;
String part1 = parts[0] ; // 1583388944
String part2 = parts[1] ; // 0912497
解析为长整数。我们必须将第二部分相乘以获得纳秒。
long seconds = Long.parseLong( part1 ) ;
long nanos = Long.parseLong( part2 ) * 100 ;
提供工厂方法以实例化 Instant
对象。
Instant instant = Instant.ofEpochSecond( seconds , nanos ) ;
如何将这个 unix 纪元“1583388944.0912497”转换为 Java 时间戳类型?
为了使用 Instant.from* 或 Long.valueOf,我应该去掉句点后的精度数字吗?
谢谢
将字符串分成两部分,整秒数和纳秒数。
避免使用浮点技术,因为它会牺牲准确性来换取执行速度。
String string = "1583388944.0912497" ;
String[] parts = string.split("\.") ;
String part1 = parts[0] ; // 1583388944
String part2 = parts[1] ; // 0912497
解析为长整数。我们必须将第二部分相乘以获得纳秒。
long seconds = Long.parseLong( part1 ) ;
long nanos = Long.parseLong( part2 ) * 100 ;
提供工厂方法以实例化 Instant
对象。
Instant instant = Instant.ofEpochSecond( seconds , nanos ) ;