How do I say 5 seconds from now in Java?

Date is almost entirely deprecated and is still there for backward compatibility reasons. If you need to set particular dates or do date arithmetic, use a Calendar:

Calendar calendar = Calendar.getInstance(); // gets a calendar using the default time zone and locale.
calendar.add(Calendar.SECOND, 5);
System.out.println(calendar.getTime());

From the one-liner-hacky dep.:

new Date( System.currentTimeMillis() + 5000L)

As I understand it from your example, 'now' is really 'now', and "System.currentTimeMillis()' happens to represent that same 'now' concept :-)

But, yup, for everything more complicated than that the Joda time API rocks.


You can use:

now.setTime(now.getTime() + 5000);

Date.getTime() and setTime() always refer to milliseconds since January 1st 1970 12am UTC.

Joda-Time

However, I would strongly advise you to use Joda Time if you're doing anything more than the very simplest of date/time handling. It's a much more capable and friendly library than the built-in support in Java.

DateTime later = DateTime.now().plusSeconds( 5 );

java.time

Joda-Time later inspired the new java.time package built into Java 8.

Tags:

Java

Date