자바 Util.currentTimeNanos()


개요

Java Util.currentTimeNanos()
private static class Util {
	private final static long currentTimeNanosOffset = (System.currentTimeMillis() * 1000000) - System.nanoTime();
	public static long currentTimeNanos() {
		return System.nanoTime() + currentTimeNanosOffset;
	}
}
long nanos = Util.currentTimeNanos();
System.out.println(nanos);
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(nanos/1000000L));
// 1491972384307016608
// 2017-04-12 13:46:24.307

종합 예제

public class HelloApplication {
	private static class Util {
		private final static long currentTimeNanosOffset = (System.currentTimeMillis() * 1000000) - System.nanoTime();
		public static long currentTimeNanos() {
			return System.nanoTime() + currentTimeNanosOffset;
		}
	}

	public static void main(String[] args) {
		long millis = System.currentTimeMillis();
		System.out.println(millis);
		System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(millis));
		// 1491972769597
		// 2017-04-12 13:52:49.597

		long nanos = Util.currentTimeNanos();
		System.out.println(nanos);
		System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(nanos/1000000L));
		// 1491972769617027712
		// 2017-04-12 13:52:49.617		
	}
}

같이 보기

참고