Here you can find the source of getDate()
public static synchronized Date getDate()
//package com.java2s; /*/* ww w .j a v a 2 s . co m*/ * 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. */ import java.sql.Date; import java.sql.Time; import java.util.Calendar; 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; private static Calendar calendar = Calendar.getInstance(); public static synchronized Date getDate() { return currentDate(); } public static synchronized Date getDate(java.util.Date date) { if (date == null) { return currentDate(); } Calendar c = Calendar.getInstance(); c.setTimeInMillis(date.getTime()); c.set(Calendar.HOUR_OF_DAY, 0); c.set(Calendar.MINUTE, 0); c.set(Calendar.SECOND, 0); c.set(Calendar.MILLISECOND, 0); return new Date(c.getTimeInMillis()); } public static synchronized Date currentDate() { calendar.setTimeInMillis(currentTimeMillis()); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); return new Date(calendar.getTimeInMillis()); } public static synchronized Time getTime() { return currentTime(); } public static synchronized Time getTime(java.util.Date date) { if (date == null) { return currentTime(); } Calendar c = Calendar.getInstance(); c.setTimeInMillis(date.getTime()); c.set(Calendar.YEAR, 1970); c.set(Calendar.MONTH, Calendar.JANUARY); c.set(Calendar.DAY_OF_MONTH, 1); return new Time(c.getTimeInMillis()); } 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; } public static synchronized Time currentTime() { calendar.setTimeInMillis(currentTimeMillis()); calendar.set(Calendar.YEAR, 1970); calendar.set(Calendar.MONTH, Calendar.JANUARY); calendar.set(Calendar.DAY_OF_MONTH, 1); return new Time(calendar.getTimeInMillis()); } }