Alex Rivera | Logout

Removing time from a Date object?

Asked 2012-03-22T04:29:38.257
86

I want to remove time from Date object.

DateFormat df;
String date;
df = new SimpleDateFormat("dd/MM/yyyy");
d = eventList.get(0).getStartDate(); // I'm getting the date using this method
date = df.format(d); // Converting date in "dd/MM/yyyy" format

But when I'm converting this date (which is in String format) it is appending time also.

I don't want time at all. What I want is simply "21/03/2012".

Edit
Report

2 Answers

45

Apache Commons DateUtils has a "truncate" method that I just used to do this and I think it will meet your needs. It's really easy to use:

DateUtils.truncate(dateYouWantToTruncate, Calendar.DAY_OF_MONTH);

DateUtils also has a host of other cool utilities like "isSameDay()" and the like. Check it out it! It might make things easier for you.

answered 2013-04-25T21:46:42.827
1

A bit of a fudge but you could use java.sql.Date. This only stored the date part and zero based time (midnight)

Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, 2011);
c.set(Calendar.MONTH, 11);
c.set(Calendar.DATE, 5);
java.sql.Date d = new java.sql.Date(c.getTimeInMillis());
System.out.println("date is  " + d);
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
System.out.println("formatted date is  " + df.format(d));

gives

date is  2011-12-05
formatted date is  05/12/2011

Or it might be worth creating your own date object which just contains dates and not times. This could wrap java.util.Date and ignore the time parts of it.

answered 2012-09-25T20:11:14.903

Your Answer