fork(4) download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. import java.math.BigDecimal;
  8.  
  9. import java.time.* ;
  10. import java.time.temporal.* ;
  11. import java.time.format.* ;
  12.  
  13. /* Name of the class has to be "Main" only if the class is public. */
  14. class Ideone
  15. {
  16. public static void main (String[] args) throws java.lang.Exception
  17. {
  18.  
  19. String input = "1.514408397505346E9";
  20. BigDecimal bd = new BigDecimal( input );
  21. BigDecimal microsDivisor = new BigDecimal( 1_000_000_000L );
  22. long seconds = bd.longValue( );
  23. BigDecimal bdMicros = bd.subtract( new BigDecimal( seconds ) ).multiply( microsDivisor );
  24. long nanos = bdMicros.longValue( );
  25.  
  26. Instant instant = Instant.ofEpochSecond( seconds , nanos );
  27.  
  28. System.out.println( "input: " + input + " = bd: " + bd + " = seconds: " + seconds + " & nanos: " + nanos );
  29. System.out.println( "instant.toString(): " + instant );
  30.  
  31.  
  32. }
  33. }
Success #stdin #stdout 0.14s 4575232KB
stdin
Standard input is empty
stdout
input: 1.514408397505346E9 = bd: 1514408397.505346 = seconds: 1514408397 & nanos: 505346000
instant.toString(): 2017-12-27T20:59:57.505346Z