- 3
- 0
- 约1.18万字
- 约 15页
- 2017-06-13 发布于北京
- 举报
JAVA Calendar方法详解
究竟什么是一个 Calendar 呢?中文的翻译就是日历,那我们立刻可以想到我们生活中有阳(公)历、阴(农)历之分。它们的区别在哪呢?
??? 比如有:??? 月份的定义 - 阳`(公)历 一年12 个月,每个月的天数各不同;阴(农)历,每个月固定28天??? 每周的第一天 - 阳(公)历星期日是第一天;阴(农)历,星期一是第一天
??? 实际上,在历史上有着许多种纪元的方法。它们的差异实在太大了,比如说一个人的生日是\八月八日\ 那么一种可能是阳(公)历的八月八日,但也可以是阴(农)历的日期。所以为了计时的统一,必需指定一个日历的选择。那现在最为普及和通用的日历就是 \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(S
您可能关注的文档
最近下载
- 2025年最新部编版五年级语文下册1-8单元教材分析(全册) .pdf VIP
- 山东省烟台龙口市(五四制)2024-2025学年六年级上学期期末考试历史试题.pdf VIP
- 青少年编程:NOIP CSP 初赛篇.pdf VIP
- 2024年河南豫能控股股份有限公司招聘笔试真题汇总.docx VIP
- 小学科学教育三年规划实施方案.docx VIP
- 视频会议摄像机安装指导书.docx VIP
- 波束匹配-5G网络自适应技术.doc VIP
- 2025年河南豫能控股股份有限公司招聘考试笔试试题(含答案).docx VIP
- 急性心肌梗死PBL教学指南:临床思维培养与典型案例实战解析.pptx VIP
- iso9000实战大全iso9001教材iso9000培训讲义iso9000简述.pptx VIP
原创力文档

文档评论(0)