Java JDK 提供了java.util.Calendar来处理日期和时间。Calendar是一个抽象类,是所有日历的模板,因此我们可以继承Calendar来实现其他的历法(比如阴历)。
Java提供了一种Calendar的默认实现java.util.GregorianCalendar格里高利日历(公历),使用Calendar.getInstance();获取的就是默认的GregorianCalendar。
Calendar与Date的互相转换。
1.如果Calendar没有设置相关的值,就是以当前系统时间来设置。
2.add(int field,int amount),如果要增加某个字段的值,则让amount为正数;如果要减少某个字段的值,则让amount为负数。而且当超出允许范围时,会发生自动进位。
3.roll()的含义与用法和add()的类似,但是当被修改的字段超出它允许的范围时,他不会进位。
4.set(int field,int amount),方法具有延迟修改的功能:他内部设置了一个成员变量,以指示日历字段field已经被修改,但是该Calendar所代表的时间不会立即修改,他会直到下次调用get/getTime/getTimeInMills/add/roll时才会重新计算日历时间。
public static void main(String[] arg) { Calendar calendar = Calendar.getInstance(); calendar.set(2011, Calendar.JULY, 31); calendar.set(Calendar.MONTH, Calendar.SEPTEMBER); System.out.print(calendar.get(Calendar.MONTH) + 1 + "月" + calendar.get(Calendar.DATE) + "日\t"); calendar.set(Calendar.DATE, 5); System.out.print(calendar.get(Calendar.MONTH) + 1 + "月" + calendar.get(Calendar.DATE) + "日\t"); //10月1日 10月5日 calendar.set(2011, Calendar.JULY, 31); calendar.set(Calendar.MONTH, Calendar.SEPTEMBER); //System.out.print(calendar.get(Calendar.MONTH) + 1 + "月" + calendar.get(Calendar.DATE) + "日\t"); calendar.set(Calendar.DATE, 5); System.out.print(calendar.get(Calendar.MONTH) + 1 + "月" + calendar.get(Calendar.DATE) + "日\t"); //9月5日 }