Java 8's java.time.Instant stores in "nanosecond resolution", but using Instant.now() only provides millisecond resolution...
Instant instant = Instant.now();
System.out.println(instant);
System.out.println(instant.getNano());
Result...
2013-12-19T18:22:39.639Z
639000000
How can I get an Instant whose value is 'now', but with nanosecond resolution?
You can only get an Instant with "nanoseconds" by using another more precise java.time.Clock by using the Instant-method
public static Instant now(Clock clock)
In your example the default clock normally uses System.currentTimeMillis() which cannot display any nanoseconds.Be aware that there is no clock available in nanosecond resolution (real time). The internal nanosecond representation facility of java.time.Instant is mainly due to the requirement to map database timestamps given in nanosecond precision (but normally not accurate to nanoseconds!).
Update from 2015-12-29: Java-9 will deliver a better clock, see my newer post.