Here you can find the source of currentTimeMillis()
public static synchronized long currentTimeMillis()
//package com.java2s; /*/*w w w . ja v a2 s. com*/ * Este programa es software libre; usted puede redistribuirlo y/o modificarlo bajo los t?rminos * de la licencia "GNU General Public License" publicada por la Fundaci?n "Free Software Foundation". * Este programa se distribuye con la esperanza de que pueda ser ?til, pero SIN NINGUNA GARANTIA; * vea la licencia "GNU General Public License" para obtener mas informaci?n. */ public class Main { private static long currentTimeMillis = 0; private static long lastTimeMillis = 0; private static long lastTimeMicros = 0; private static long lastTimeNanos = 0; private static long micros = 0; private static long nanos = 0; public static synchronized long currentTimeMillis() { currentTimeMillis = System.currentTimeMillis(); if (lastTimeMillis < currentTimeMillis) { lastTimeMillis = currentTimeMillis; } else { lastTimeMillis++; } lastTimeMicros = lastTimeMillis * 1000; lastTimeNanos = lastTimeMicros * 1000; micros = 0; nanos = 0; return lastTimeMillis; } }