java.util.Calendar的用法

转自 http://blog.csdn.net/wangtao041/article/details/2757824  

Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEARMONTHDAY_OF_MONTHHOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。

该类还为实现包范围外的具体日历系统提供了其他字段和方法。这些字段和方法被定义为 protected

与其他语言环境敏感类一样,Calendar 提供了一个类方法 getInstance,以获得此类型的一个通用的对象。Calendar 的 getInstance 方法返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化:

     Calendar rightNow = Calendar.getInstance();
 

   Calendar 对象能够生成为特定语言和日历风格实现日期-时间格式化所需的所有日历字段值,例如,日语-格里高里历,日语-传统日历。Calendar 定义了某些日历字段返回值的范围,以及这些值的含义。例如,对于所有日历,日历系统第一个月的值是 MONTH == JANUARY。其他值是由具体子类(例如 ERA)定义的。

******************************************************************

例子:

java.util.Calendar对于日期的处理非常的方便,如newDate.set(Calendar.MONTH, 12); //加12个月,newDate.set(Calendar.DATE, -1); //前一天
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Calendar;
public class calendartest {
/**
 * @param args
 */
public static void main(String[] args) {
SimpleDateFormat dateformat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E");

System.out.println("今天? :"+dateformat.format(new Date()));

  Calendar c=Calendar.getInstance();

  c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
  Date d1=new Date(c.getTimeInMillis());
  System.out.println("星期一:"+dateformat.format(d1));


  c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
  Date d2=new Date(c.getTimeInMillis());
  System.out.println("星期日:"+dateformat.format(d2));


 }

}
执行结果:
今天? :2006-12-21 16:39:03 星期四
星期一:2006-12-18 16:39:03 星期一
星期日:2006-12-17 16:39:03 星期日

******************************************************************

    Calendar 与 Date 的转换非常简单:

    Calendar calendar = Calendar.getInstance();
    // 从一个 Calendar 对象中获取 Date 对象
    Date date = calendar.getTime();
    // 将 Date 对象反应到一个 Calendar 对象中,
    // Calendar/GregorianCalendar 没有构造函数可以接受 Date 对象
    // 所以我们必需先获得一个实例,然后设置 Date 对象
    calendar.setTime(date);

posted on 2013-05-25 06:51  Step-BY-Step  阅读(455)  评论(0编辑  收藏  举报

导航