Java中的日历类

来源:互联网 发布:mac双系统开机切换 编辑:程序博客网 时间:2024/06/09 16:54
    现在,必须同时处理 DateCalendar 才能设置部分 Date。但是一旦有了 Date 实例,就可以使用 Calendar 获得并设置部分 Date。例如:

   Date aDate = new Date(System.currentTimeMillis());
    Calendar calendar = GregorianCalendar.getInstance();
    calendar.setTime(aDate);

    在这里,我们创建了一个 GregorianCalendar,并将它的时间设置为以前创建的 Date。通过在 Calendar 上调用不同的方法,也能做到这一点:


   Calendar calendar = GregorianCalendar.getInstance();
    calendar.setTimeInMillis(System.currentTimeMillis());

    通过 Calendar,我们现在可以访问和操作 Date 的组件。获得并设置部分 Date 也成为一个简单的过程。只需要在 Calendar 上调用适当的 getter 和 setter 即可,如下所示:


   calendar.set(Calendar.MONTH, Calendar.JULY);
    calendar.set(Calendar.DAY_OF_MONTH, 15);
    calendar.set(Calendar.YEAR, 1978);
    calendar.set(Calendar.HOUR, 2);
    calendar.set(Calendar.MINUTE, 15);
    calendar.set(Calendar.SECOND, 37);
    System.out.println(calendar.getTime());

    这将输出 1987 年 7 月 15 日上午 2 点 15 分 37 秒的格式化后的输出字符串。(在 Calendar 上也有一些辅助方法,允许同时设置一些或几乎所有的组件。)这里调用的是 set(),它带有两个参数:

  • 想要设置的 Datefield(或组件)。
  • 该字段的值。

我们可以用 Calendar 类中指定的常数来引用这些字段。在某些情况下,同一字段会有一个以上的名称,比如 Calendar.DAY_OF_MONTH,还可以用 Calendar.DATE 来引用它。除了可能是 Calendar.MONTH 的值和 Calendar.DATE 的值之外,其他的值都很简单。在 Java 语言的日期中,月份是基于 0 的(也就是说,1 月是 0),这使得使用指定的常数来设置月份值成为一种明智之举,但也使得正确地显示日期成为令人沮丧的事。小时的数值是从 0 到 24。

    一旦有一个建立好的 Date,就可以提取其中的一部分。


   System.out.println("The YEAR is: " + calendar.get(Calendar.YEAR));
    System.out.println("The MONTH is: " + calendar.get(Calendar.MONTH));
    System.out.println("The DAY is: " + calendar.get(Calendar.DATE));
    System.out.println("The HOUR is: " + calendar.get(Calendar.HOUR));
    System.out.println("The MINUTE is: " + calendar.get(Calendar.MINUTE));
    System.out.println("The SECOND is: " + calendar.get(Calendar.SECOND));
    System.out.println("The AM_PM indicator is: " + calendar.get(Calendar.AM_PM));
 
原创粉丝点击