blackdog
blackdog

Reputation: 2107

Calendar can not set hour correctly

When I want to get a time set to 00:00:00, Calendar always get 12:00:00

Calendar currentDate = Calendar.getInstance();
// even set AM_PM it was still 12:00:00
// currentDate.set(Calendar.AM_PM, Calendar.AM);
// Calendar.HOUR still not work
currentDate.set(Calendar.HOUR_OF_DAY, 0);
currentDate.set(Calendar.MINUTE, 0);
currentDate.set(Calendar.SECOND, 0);
currentDate.set(Calendar.MILLISECOND, 0); 

How could I make it? Thanks in advance.

enter image description here

enter image description here

enter image description here

Upvotes: 3

Views: 2033

Answers (2)

Stephan
Stephan

Reputation: 43023

You can set hour like this:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMM dd HH:mm:ss");

Calendar calendar = new GregorianCalendar(2014, 4, 15, 0, 0, 0);

System.out.println(sdf.format(calendar.getTime()));

OUTPUT

2014 mai 15 00:00:00

mai means may month in french.

Upvotes: 1

Evan Knowles
Evan Knowles

Reputation: 7501

But when is 00:00:00, really, when you get down to it? Is it today? Or yesterday?

To eliminate confusion, try something like

Calendar currentDate = Calendar.getInstance();
// even set AM_PM it was still 12:00:00
// currentDate.set(Calendar.AM_PM, Calendar.AM);
// Calendar.HOUR still not work
currentDate.set(Calendar.HOUR_OF_DAY, 0);
currentDate.set(Calendar.MINUTE, 0);
currentDate.set(Calendar.SECOND, 1);
currentDate.set(Calendar.MILLISECOND, 0); 

Upvotes: 2

Related Questions