public static Instant ofEpochSecond(long epochSecond, long nanoAdjustment) {
        long secs = Math.addExact(epochSecond, Math.floorDiv(nanoAdjustment, NANOS_PER_SECOND));
        int nos = (int)Math.floorMod(nanoAdjustment, NANOS_PER_SECOND);
        return create(secs, nos);
    }
public static Instant ofEpochSecond ( long epochSecond , long nanoAdjustment ) { long secs = Math . addExact ( epochSecond , Math . floorDiv ( nanoAdjustment , NANOS_PER_SECOND ) ) ; int nos = ( int ) Math . floorMod ( nanoAdjustment , NANOS_PER_SECOND ) ; return create ( secs , nos ) ; }
Obtains an instance of {@code Instant} using seconds from the
epoch of 1970-01-01T00:00:00Z and nanosecond fraction of second.
<p>
This method allows an arbitrary number of nanoseconds to be passed in.
The factory will alter the values of the second and nanosecond in order
to ensure that the stored nanosecond is in the range 0 to 999,999,999.
For example, the following will result in the exactly the same instant:
<pre>
Instant.ofEpochSecond(3, 1);
Instant.ofEpochSecond(4, -999_999_999);
Instant.ofEpochSecond(2, 1000_000_001);
</pre>

@param epochSecond  the number of seconds from 1970-01-01T00:00:00Z
@param nanoAdjustment  the nanosecond adjustment to the number of seconds, positive or negative
@return an instant, not null
@throws DateTimeException if the instant exceeds the maximum or minimum instant
@throws ArithmeticException if numeric overflow occurs