You are setting calendar in a wrong way. Calendar.YEAR, Calendar.MONTH, etc. are the field numbers, not current Date values. The proper way is like that:
calendar.set(Calendar.YEAR, your_year);
calendar.set(Calendar.MONTH, your_month);
...
So Calendar.YEAR is always equals to 1, Calendar.MONTH is always equals to 2. You calendar set up should be like so:
calendar.set(desired_year, desired_month (0 to 11), desired_date, hour, minute);
You can take a look here http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html
EDIT
When you call getInstance(), you get Date object with current time (you may want also want to pass your timezone as parameter by using TimeZone.getTimeZone(your_timezone)), so you have to set only the hour and minute fields as follow:
calendar.set(Calendar.HOUR_OF_DAY, your_hour);
calendar.set(Calendar.MINUTE, your_minute);
Please check this example http://ideone.com/GN5ub1