calendar.set(Calendar.MINUTE,20);无法更改 calendar.MINUTE 的值;

calendar.set(Calendar.MINUTE,20); cannot change value of calendar.MINUTE;

public class workingWithCalender {
public static void main(String[] args){
    Calendar calendar = Calendar.getInstance();
    System.out.println("Initially : Hour: "+calendar.HOUR_OF_DAY+"  Minute: "+calendar.MINUTE);
    calendar.set(Calendar.HOUR_OF_DAY,10);
    calendar.set(Calendar.MINUTE,20);
    System.out.print("Finally : Hour: "+calendar.HOUR_OF_DAY+"  Minute: "+calendar.MINUTE);
}

}

此代码正在生成输出:

Initially: hour: 11 minute:12   Finally hour: 11 minute:12

但是我需要Finally: hour: 10 minute: 20 代码有什么问题以及如何获得所需的输出?

您正在使用 set 但未使用 get

尝试

System.out.print("Finally : Hour: "+calendar.get(Calendar.HOUR_OF_DAY) +
      "  Minute: "+calendar.get(Calendar.MINUTE));

您在 Class 日历的内部字段编号处打印的值请参阅 https://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html#MINUTE

还可以使用日历的静态字段,例如Calendar.MINUTE