JAVA Calendar详解.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JAVA Calendar详解在历史上有着许多种纪元的方法。它们的差异实在太大了,比如说一个人的生日是"八月八日" 那么一种可能是阳(公)历的八月八日,但也可以是阴(农)历的日期。所以为了计时的统一,必需指定一个日历的选择。那现在最为普及和通用的日历就是 "Gregorian Calendar"。也就是我们在讲述年份时常用 "公元几几年"。Calendar 抽象类定义了足够的方法,让我们能够表述日历的规则。Java 本身提供了对 "Gregorian Calendar" 规则的实现。我们从 Calendar.getInstance() 中所获得的实例就是一个 "GreogrianCalendar" 对象(与您通过 new GregorianCalendar() 获得的结果一致)。 下面的代码可以证明这一点: import java.io.*; import java.util.*; public class WhatIsCalendar { public static void main(String[] args) { Calendar calendar = Calendar.getInstance(); if (calendar instanceof GregorianCalendar) System.out.println("It is an instance of GregorianCalendar"t; } } Calendar 在 Java 中是一个抽象类(Abstract Class),GregorianCalendar 是它的一个具体实现。 我们也可以自己的 Calendar 实现类,然后将它作为 Calendar 对象返回(面向对象的特性)。在 IBM alphaWorks 上,IBM 的开发人员实现了多种日历(/tech/calendars)。同样在 Internet 上,也有对中国农历的实现。本文对如何扩展 Calendar 不作讨论,大家可以通过察看上述 Calendar 的源码来学习。 Calendar 与 Date 的转换非常简单: Calendar calendar = Calendar.getInstance(); // 从一个 Calendar 对象中获取 Date 对象 Date date = calendar.getTime(); // 将 Date 对象反应到一个 Calendar 对象中, // Calendar/GregorianCalendar 没有构造函数可以接受 Date 对象 // 所以我们必需先获得一个实例,然后设置 Date 对象 calendar.setTime(date); Calendar 对象在使用时,有一些值得注意的事项: 1. Calendar 的 set() 方法 set(int field, int value) - 是用来设置"年/月/日/小时/分钟/秒/微秒"等值 field 的定义在 Calendar 中 set(int year, int month, int day, int hour, int minute, int second) 但没有 set(int year, int month, int day, int hour, int minute, int second, int millisecond) 前面 set(int,int,int,int,int,int) 方法不会自动将 MilliSecond 清为 0。 另外,月份的起始值为0而不是1,所以要设置八月时,我们用7而不是8。 calendar.set(Calendar.MONTH, 7); 我们通常需要在程序逻辑中将它清为 0,否则可能会出现下面的情况: import java.io.*; import java.util.*; public class WhatIsCalendarWrite { public static void main(String[] args) throws Exception{ ObjectOutputStream out = new ObjectOutputStream( new FileOutputStream("calendar.out"t); Calendar cal1 = Calendar.getInstance(); cal1.set(2000, 7, 1, 0, 0, 0); out.writeObject(cal1); Calendar cal2 = Calendar.getInstance(); cal2.set(2000, 7, 1, 0, 0, 0); cal2.set(Calendar.MILLISECOND, 0);

文档评论(0)

精品报告 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档