java--Calender类
来源:互联网 发布:牛人的工作效率 知乎 编辑:程序博客网 时间:2024/05/18 23:24
最近要使用Calender类,不用不知道,一用吓一跳。在这里记录一下遇到的问题。
1,首先看一下Calender类的部分源码。
没错!Calender类默认sunday是一个星期的第1天,默认January是一年中的第0个月。
有没有注意到第12个月(UNDECIMBER)?这个是给阴历用的,因为阴历有时会闰月。
2,获得日期要用get方法,而不是Calender属性,这一点在Calender的类的api有说明。
Calendar calendar = Calendar.getInstance();System.out.println(Calendar.YEAR);System.out.println(Calendar.MONTH);System.out.println(Calendar.DAY_OF_MONTH);System.out.println("======================");System.out.println(calendar.get(Calendar.YEAR));System.out.println(calendar.get(Calendar.MONTH));System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
看出来差别没?实际时间是2017-03-06.
3,Calender类的常用属性。(实际时间为2017-03-06 15:41:59)
AM
指示从午夜到中午之前这段时间的 AM_PM 字段值。
System.out.println(calendar.AM); //0
PM
指示从中午到午夜之前这段时间的 AM_PM 字段值。
System.out.println(calendar.PM); //1
AM_PM
get 和 set 的字段数字,指示 HOUR 是在中午之前还是在中午之后。
System.out.println(calendar.get(Calendar.AM_PM)); //1
DATE/DAY_OF_MONTH
get 和 set 的字段数字,指示一个月中的某天。
System.out.println(calendar.get(Calendar.DATE)); //6
System.out.println(calendar.get(Calendar.DAY_OF_MONTH)); //6
DAY_OF_WEEK
get 和 set 的字段数字,指示一个星期中的某天。
System.out.println(calendar.get(Calendar.DAY_OF_WEEK)); //2
DAY_OF_WEEK_IN_MONTH
get 和 set 的字段数字,指示当前月中的第几个星期。
System.out.println(calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH)); //1
DAY_OF_YEAR
get 和 set 的字段数字,指示当前年中的天数。
System.out.println(calendar.get(Calendar.DAY_OF_YEAR)); //65
HOUR
get 和 set 的字段数字,指示上午或下午的小时。
System.out.println(calendar.get(Calendar.HOUR)); //3
HOUR_OF_DAY
get 和 set 的字段数字,指示一天中的小时。
System.out.println(calendar.get(Calendar.HOUR_OF_DAY)); //15
MINUTE
get 和 set 的字段数字,指示一小时中的分钟。
System.out.println(calendar.get(Calendar.MINUTE)); //41
MONTH
get 和 set 的字段数字,指示月份。
System.out.println(calendar.get(Calendar.MONTH) + 1); //3
SECOND
get 和 set 的字段数字,指示一分钟中的秒。
System.out.println(calendar.get(Calendar.SECOND)); //59
WEEK_OF_MONTH
get 和 set 的字段数字,指示当前月中的星期数。
System.out.println(calendar.get(Calendar.WEEK_OF_MONTH)); //2
WEEK_OF_YEAR
get 和 set 的字段数字,指示当前年中的星期数。
System.out.println(calendar.get(Calendar.WEEK_OF_YEAR)); //10
YEAR
get 和 set 的字段数字,指示年。
System.out.println(calendar.get(Calendar.YEAR)); //2017
PS:解释一下DAY_OF_WEEK_IN_MONTH和WEEK_OF_MONTH的区别,前者是一个月中的第几个星期(每个月的八号都是第二个星期第一天),后者是一个月中的星期数,跟该月的一号是星期几有关。
3,Calender类的一些方法。(实际时间为2017-03-06 17:12:21)
Calendar calendar = Calendar.getInstance();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");add(int field, int amount)
为给定的日历字段添加或减去指定的时间量。
calendar.add(Calendar.DATE, -1);
roll(int field, int amount)System.out.println(sdf.format(calendar.getTime())); //2017-03-06 17:12:21
向指定日历字段添加指定(有符号的)时间量,不更改更大的字段。
calendar.roll(Calendar.HOUR, 20);
System.out.println(sdf.format(calendar.getTime())); //2017-03-07 13:12:21
Calender类API http://tool.oschina.net/uploads/apidocs/jdk-zh/java/util/Calendar.html
- java--Calender类
- java学习之Calender类
- java基础之Calender类
- Calender类
- calender类
- Calender类
- Calender类
- Java Date类 Calender类 比较
- java calender获取时间
- java calender坑
- Java学习之Calender
- Java的Date类与Calender类的比较
- Java中Date类和Calender类的比较
- Java中Date和Calender类的使用方法
- Java中Date和Calender类的使用方法
- Java中Date和Calender类的使用方法
- Java中Date和Calender类的使用方法
- Calender类的应用
- Hadoop生态系统
- java中wait()、notify()以及notifyAll()的使用
- 和我一起学 Selenium WebDriver(6)——基础篇
- @Controller和@RestController的区别
- FineUIMvc随笔_0
- java--Calender类
- 仿抽屉式的ListView-StickyListHeadersListView的使用
- 和我一起学 Selenium WebDriver(7)——基础篇
- try、catch、finally语句注意问题
- C-F7. 多VLAN互访及上网 ❀ C3750-E ❀ 思科 (CISCO) 交换机
- Java中使用Jedis操作Redis
- [题解]bzoj3884 上帝与集合的正确用法
- mysql日志记录方式比较
- eclipse集成Java框架基础集成扩展插件