I did a simple test on Calendar class. The code is :
public static void main(String[] args) {
TimeZone tz = TimeZone.getTimeZone("Asia/Kathmandu");
System.out.println(tz.getDisplayName());
Calendar cal1 = Calendar.getInstance();
cal1.set(2014, 8, 31);
System.out.println(cal1.getTimeZone().getDisplayName());
Calendar cal2 = Calendar.getInstance();
cal2.set(2014,9,1);
int diff = cal2.get(Calendar.MONTH)-cal1.get(Calendar.MONTH);
System.out.println(diff);
System.out.println(cal2.get(Calendar.MONTH));
System.out.println(cal1.get(Calendar.MONTH));
}
The result got was :
Nepal Time
Nepal Time
0
9
9
Why am I getting MONTH as '9' for cal1 instead of '8'??