tl;dr
Your input is an encoded value, per comment by Ole V.V. and covered in original Question. Not a count of nanos.
Multiply by ten for a count of nanoseconds
If you have a count of groups of 100 nanoseconds, then multiply by ten (10) to get a count of nanoseconds.
long input = 130_016_196_641_685_504L ;
long nanos = input * 10 ;
Convert to an Instant
.
Instant instant = Instant.EPOCH.plus( nanos , ChronoUnit.NANOS ) ;
instant.toString(): 2011-03-15T04:06:06.416855040Z
You example input of 130_016_196_641_685_504L
multiplied by ten representing a count of nanoseconds since the epoch reference of first moment of 1970 UTC results in 2011-03-15T04:06:06.416855040Z
.
Your expectations are not valid
I suspect your expectations are incorrect. You should edit your Question to explain the reason for your expectation.
Your expected result of 2013-02-14T17:01:04Z
is actually this count of nanoseconds since first moment of 1970 UTC: 1360861264000000000
.
LocalDate ld = LocalDate.of( 2013 , Month.FEBRUARY , 14 ) ;
LocalTime lt = LocalTime.of( 17 , 1 , 4 ) ;
OffsetDateTime odt = OffsetDateTime.of( ld , lt , ZoneOffset.UTC ) ;
long output = Duration.between( Instant.EPOCH , odt.toInstant() ).toNanos() ;
See similar code run live at IdeOne.com.
Perhaps you assume incorrectly the epoch reference used by the publisher of your input data. Dozens of various epoch references are in use by various kinds of information systems.
➥ Or more likely, your input is not a count of nanos from epoch, but an encoded value as commented by Ole V.V., to be decoded by code seen on the linked Question.