Calendar类就相当于一张日历,这张日历上有一个一个的Date,你可以想象有一个指针指向这张日历上的某个Date。
我们可以用Calendar calendar = Calendar.getInstance();方法得到一个Calendar对象,得到的Calendar对象默认是当天的Date。
下面的代码讲解了各种取得日期,时间,星期的方法:
// 得到Calendar实例对象
Calendar calendar = Calendar.getInstance();
// 目前的日期+时间+星期
System.out.println("Current Date:" + calendar.getTime());
// 本年
System.out.println("Current Year:" + calendar.get(Calendar.YEAR) + "年");
// 本月(注意月份是从0开始的,所以要+1)
System.out.println("Current Month:" + (calendar.get(Calendar.MONTH) + 1) + "月");
// 本日
System.out.println("Current Day Of Month:" + calendar.get(Calendar.DAY_OF_MONTH) + "日");
System.out.println("Current Day Of Month:" + calendar.get(Calendar.DATE) + "日");
// 本日在本周中的Index(周日是每个星期的第一天,周日~周六 对应着 1~7)
final String[] ARRAY_WEEKS = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
System.out.println("Current Week:" + ARRAY_WEEKS[dayOfWeek - 1]);
// 本周在本月中的Index(即本月中的第几周)
System.out.println("Current Day Of Week In Month:本月第" + calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH) + "周");
// 本日在本年中的Index(即本年中的第几天)
System.out.println("Current Day Of Year:本年第" + calendar.get(Calendar.DAY_OF_YEAR) + "日");
运行结果如下:
Current Date:Thu May 03 21:07:02 CST 2012
Current Year:2012年
Current Month:5月
Current Day Of Month:3日
Current Week:星期四
Current Day Of Week In Month:本月第1周
Current Day Of Year:本年第124日
指针默认是指向当天的Date的,那么怎么移动指针到其他的Date呢?
- setTime(Date date)
- set(int year, int month, int date)
- set(int year, int month, int date, int hourOfDay, int minute)
- set(int year, int month, int date, int hourOfDay, int minute, int second)
- set(int field, int value)
- add(int field, int amount)
第1、2、3、4种方法不解释
第5种方法:根据field决定设值方法,请看如下代码
// 设置Calendar的Date为本月第一天
calendar.set(Calendar.DATE, 1);
System.out.println("本月第一天的Date:" + calendar.getTime());
// 设置Calendar的Date为本月第一天
calendar.set(Calendar.DAY_OF_MONTH, 1);
System.out.println("本月第一天的Date:" + calendar.getTime());
// 设置Calendar的Date为本周第一天
calendar.set(Calendar.DAY_OF_WEEK, 1);
System.out.println("本周第一天的Date:" + calendar.getTime());
运行结果如下:
本月第一天的Date:Tue May 01 21:53:09 CST 2012
本月第一天的Date:Tue May 01 21:53:09 CST 2012
本周第一天的Date:Sun Apr 29 21:53:09 CST 2012
第六种方法:在本Date的基础上增加或减少(可以增加减少年,月,日,周,时,分,秒)
// 增加一天
calendar.add(Calendar.DATE, 1);
System.out.println("增加一天:" + calendar.getTime());
// 减少一天
calendar.add(Calendar.DATE, -1);
System.out.println("减少一天:" + calendar.getTime());
// 增加一小时
calendar.add(Calendar.HOUR, 1);
System.out.println("增加一小时:" + calendar.getTime());
想得到今年有多少天,多少周,本月有多少天,多少周怎么办呢?
System.out.println("今年有:" + calendar.getActualMaximum(Calendar.DAY_OF_YEAR) + "天,"
+ calendar.getActualMaximum(Calendar.WEEK_OF_YEAR) + "周");
System.out.println("本月有:" + calendar.getActualMaximum(Calendar.DAY_OF_MONTH) + "天,"
+ calendar.getActualMaximum(Calendar.WEEK_OF_MONTH) + "周");
运行结果如下:
今年有:366天,52周
本月有:31天,5周
分享到:
相关推荐
Calendar 和 Date 类 是JAVA很重要的两个类,学好它们对于JAVA学习的道路非常重要
我在网上收集的一个比较全的专门简绍java里面时间相关的资料,对初学者尤其有用
主要介绍了Java Calendar类的详解及使用实例的相关资料,需要的朋友可以参考下
主要介绍了java中Calendar类用法,结合实例形式较为详细的分析了Calendar类的函数、方法功能与相关使用技巧,需要的朋友可以参考下
031105_【第11章:Java常用类库】_日期操作类(Date、Calendar)笔记.pdf 031106_【第11章:Java常用类库】_日期操作类(DateFormat、SimpleDateFormat)笔记.pdf 031107_〖第11章:Java常用类库〗_实例操作:取得...
Date与Calendar 两者的区别与联系
主要介绍了Java中的日期和时间类以及Calendar类用法详解,是Java入门学习中的基础知识,需要的朋友可以参考下
主要讲解了System类、Object类、Arrays类、Cloneable接口、IO系统输入输出类及装饰类、IO系统文本读写工具类、IO系统二进制读写工具类、对象序列化工具类、File类及文件搜索工具类、java异常机制及自定义异常类、...
主要介绍了Java时间类Date类和Calendar类的使用详解,需要的朋友可以参考下
主要为大家详细介绍了Java中Calendar时间操作常用方法,calendar中set方法和静态属性带来的一些坑,感兴趣的小伙伴们可以参考一下
主要介绍了Java Calendar日历与Date日期的相互转换详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
1 JAVA SE ...3.5 JavaMail(JAVA邮件服务)API详解 3.6 jxl.jar 包简介 3.7 Java与XML联合编程之SAX篇 3.8 Java与XML联合编程之DOM篇 4 其他 4.1 代码复用的规则 4.2 Java IO 包中的Decorator模式
<java.lang> Calendar:日历类 93 十六、 IO流:用于处理设备上数据 ★★★★★ 94 IO流的概念 95 字符流与字节流 98 流对象 101 File类 102 Java.util.Properties 103 介绍IO包中扩展功能的流对象 103 十七、 网络...
3.5 JavaMail(JAVA邮件服务)API详解 145 3.6 jxl.jar 包简介 150 3.7 Java与XML联合编程之SAX篇 154 3.8 Java与XML联合编程之DOM篇 159 4 其他 165 4.1 代码复用的规则 165 4.2 Java IO 包中的Decorator模式 168
主要介绍了Java 中 Date 与 Calendar 之间的编辑与转换 ,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
9.4.2 Calendar类 334 9.4.3 TimeZone类 337 9.5 正则表达式 338 9.5.1 创建正则表达式 338 9.5.2 使用正则表达式 341 9.6 程序国际化 345 9.6.1 Java国际化的思路 346 9.6.2 Java支持的语言和国家 346 ...
主要介绍了详解 Java中日期数据类型的处理之格式转换的实例的相关资料,日期以及时间格式处理,在Java中时间格式一般会涉及到的数据类型包括Calendar类和Date类,需要的朋友可以参考下
java Calendar详解及其各种例子
13.5Date类和Calendar类的使用404 13.5.1Date类的简单使用404 13.5.2使用SimpleDateFormat格式化输出时间405 13.5.3Calendar类的特色408 13.5.4利用GregorianCalendar输出日历411 13.6Formatter类的使用413 ...