Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java program to get the current date without timestamp

Tags:

java

I need a Java program to get the current date without a timestamp:

Date d = new Date();

gives me date and timestamp.

But I need only the date, without a timestamp. I use this date to compare with another date object that does not have a timestamp.

On printing

System.out.println("Current Date : " + d)

of d it should print May 11 2010 - 00:00:00.

like image 404
minil Avatar asked May 10 '10 20:05

minil


People also ask

How can I get just the date without a timestamp?

One of the most common ways to get a Date without time is to use the Calendar class to set the time to zero. By doing this we get a clean date, with the time set at the start of the day.

How do I get today's date in Java?

The now() method of LocalDate class The now() method of the Localdate class returns the Date object representing the current time.

What does date () getTime () do in Java?

The getTime() method of Java Date class returns the number of milliseconds since January 1, 1970, 00:00:00 GTM which is represented by Date object.

How do I remove the time from a date object?

Use the toDateString() method to remove the time from a date, e.g. new Date(date. toDateString()) . The method returns only the date portion of a Date object, so passing the result to the Date() constructor would remove the time from the date.


1 Answers

A java.util.Date object is a kind of timestamp - it contains a number of milliseconds since January 1, 1970, 00:00:00 UTC. So you can't use a standard Date object to contain just a day / month / year, without a time.

As far as I know, there's no really easy way to compare dates by only taking the date (and not the time) into account in the standard Java API. You can use class Calendar and clear the hour, minutes, seconds and milliseconds:

Calendar cal = Calendar.getInstance();
cal.clear(Calendar.HOUR_OF_DAY);
cal.clear(Calendar.AM_PM);
cal.clear(Calendar.MINUTE);
cal.clear(Calendar.SECOND);
cal.clear(Calendar.MILLISECOND);

Do the same with another Calendar object that contains the date that you want to compare it to, and use the after() or before() methods to do the comparison.

As explained into the Javadoc of java.util.Calendar.clear(int field):

The HOUR_OF_DAY, HOUR and AM_PM fields are handled independently and the the resolution rule for the time of day is applied. Clearing one of the fields doesn't reset the hour of day value of this Calendar. Use set(Calendar.HOUR_OF_DAY, 0) to reset the hour value.

edit - The answer above is from 2010; in Java 8, there is a new date and time API in the package java.time which is much more powerful and useful than the old java.util.Date and java.util.Calendar classes. Use the new date and time classes instead of the old ones.

like image 55
Jesper Avatar answered Oct 07 '22 06:10

Jesper