转自 http://blog.csdn.net/liuhenghui5201/article/details/8273259
日历类 主要涉及两个类,一个就是抽象类 Calendar类,另一个是他的子类GregorianCalendar。
一、Calendar类。
1,主要字段:
YEAR(年份) MONTH(月份从0开始) DATE(一月的某天) HOUR(指示上午或下午的小时)
HOUR_F_DAY(指示一天中的小时。) DAY_OF_WEEK (一个星期中的某天) DAY_OF_MONTH(一个月中的某天) DAY_OF_YEAR(一年中的某天)
DAY_OF_WEEK _IN_MONTH(一个月中的第几个星期) WEEK_OF_MONTH (指示当前月中的星期数) WEEK_OF_YEAR(指示当前年中的星期数)
2,得Calendar类对象。
//通过 Calendar类的静态方法getInstance获得。
Calendar ca = Calendar.getInstance();
3,主要方法
void set(int field,int value)//field日历类的参数,比如YEAR MONTH DATE 等...
void set(int year,int month,int date)//设置年月日。
void set(int year, int month, int date, int hourOfDay, int minute)//设置年月日时分
void set(int year, int month, int date, int hourOfDay, int minute, int second)//设置年月日时分秒
void setTime(Date date);//使用给定的
Date
设置此 Calendar 的时间。
int get(int field)//返回给定日历字段的值。如:int month = acobj.get(Calendar.MONTH);
Date getTime()//返回一个表示此
Calendar
时间值的Date
对象。long getTimeInMillis()//返回从1970.1.1 00:00:00到该日历的毫秒数。
void add(int field,amont);//根据日历的规则,为给定的日历字段添加或减去指定的时间量。可加减。如:caobj.add(Calendar.MONTH,1)下一个月。
二、GregorianCalendar类。
1,获得该类对象
Calendar ca = new GregorianCalendar()//默认当前的时刻。
Calendar ca = new GregorianCanlendar(int year,int month,int dayOfMonth)//初始具有指定年月日的公历类对象。
Calendar ca = new GregorianCanlendar(int year,int month,int dayOfMonth,int hourOfDay,int minute)初始具有指定年月日的公历类对象。
Calendar ca = new GregorianCanlendar(int year,int month,int dayOfMonth,int hourOfDay,int minute,int second)//初始具有指定年月日的公历类对象。
上边的都是获得默认的语言环境,和默认的时区 对象。
2,用法
用法主要继承去父类Calendar。
附一演示程序:
- package Calendar;
- import java.util.Calendar;
- import java.util.GregorianCalendar;
- public class CalendarDemo {
- /**
- * @param args
- */
- public static void main(String[] args) {
- //获得一个日历对象
- Calendar ca = Calendar.getInstance();
- // ca.setFirstDayOfWeek(Calendar.SATURDAY);
- disPlay(ca);
- //创建日历对象时间为2012.12.12.12,12,12
- Calendar c2 = new GregorianCalendar(2012, 11, 12, 12, 12, 12);
- disPlay(ca);
- //根据在年中的天数,求相隔天数。
- int days = c2.get(Calendar.DAY_OF_YEAR)-ca.get(Calendar.DAY_OF_YEAR);
- System.out.println("相差"+days+"天");
- //重新设定c2对象的时间
- System.out.println("+++++++++++++++++重新设定后时间++++++++++++:");
- c2.set(2012,11,23);//月份和日期都是0开头。月份中0表示一月。月中的日期,0表示一日。
- c2.set(Calendar.HOUR, 22);
- c2.set(Calendar.MINUTE,12);
- c2.set(Calendar.SECOND, 12);
- disPlay(c2);
- System.out.println("+++++++++++++++++修改后时间++++++++++++:");
- //向后延长29天
- ca.add(Calendar.DAY_OF_YEAR,29);
- disPlay(ca);
- //再延长10小时
- ca.add(Calendar.HOUR, 4);
- disPlay(ca);
- }
- public static void disPlay(Calendar ca) {
- String []mon = {"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};
- String []week = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
- System.out.print(ca.get(Calendar.YEAR)+"年");
- System.out.print(mon[ca.get(Calendar.MONTH)]);
- System.out.print(ca.get(Calendar.DAY_OF_MONTH)+"日");
- System.out.println(week[ca.get(Calendar.DAY_OF_WEEK)]);
- System.out.print("时间:");
- System.out.print(ca.get(Calendar.HOUR_OF_DAY)+":");
- System.out.print(ca.get(Calendar.MINUTE)+":");
- System.out.println(ca.get(Calendar.SECOND));
- }
- }
- 运行结果:
- 2012年十二月8日星期六
- 时间:20:42:38
- 2012年十二月8日星期六
- 时间:20:42:38
- 相差4天
- +++++++++++++++++重新设定后时间++++++++++++:
- 2012年十二月24日星期一
- 时间:10:12:12
- +++++++++++++++++修改后时间++++++++++++:
- 2013年一月6日星期日
- 时间:20:42:38
- 2013年一月7日星期一
- 时间:0:42:38
另参见一个日历练习。http://blog.csdn.net/liuhenghui5201/article/details/8273411