Calendar c = Calendar.getInstance();
方法展示:
方法 |
描述 |
void add(int field, int amount) | 根据日历的规则,为给定的日历字段 field 添加或减去指定的时间 量 amount |
boolean after(Object when) | 判断此 Calendar 表示的时间是否在指定时间 when 之后,并返回 判断结果 |
boolean before(Object when) | 判断此 Calendar 表示的时间是否在指定时间 when 之前,并返回 判断结果 |
void clear() | 清空 Calendar 中的日期时间值 |
int compareTo(Calendar anotherCalendar) | 比较两个 Calendar 对象表示的时间值(从格林威治时间 1970 年 01 月 01 日 00 时 00 分 00 秒至现在的毫秒偏移量),大则返回 1,小则返回 -1,相等返回 0 |
int get(int field) | 返回指定日历字段的值 |
int getActualMaximum(int field) | 返回指定日历字段可能拥有的最大值 |
int getActualMinimum(int field) | 返回指定日历字段可能拥有的最小值 |
int getFirstDayOfWeek() | 获取一星期的第一天。根据不同的国家地区,返回不同的值 |
static Calendar getInstance() | 使用默认时区和语言坏境获得一个日历 |
static Calendar getInstance(TimeZone zone) | 使用指定时区和默认语言环境获得一个日历 |
static Calendar getInstance(TimeZone zone, Locale aLocale) | 使用指定时区和语言环境获得一个日历 |
Date getTime() | 返回一个表示此 Calendar 时间值(从格林威治时间 1970 年 01 月 01 日 00 时 00 分 00 秒至现在的毫秒偏移量)的 Date 对象 |
long getTimeInMillis() | 返回此 Calendar 的时间值,以毫秒为单位 |
void set(int field, int value) | 为指定的日历字段设置给定值 |
void set(int year, int month, int date) | 设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值 |
void set(int year, int month, int date, int hourOfDay, int minute, int second) | 设置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR、 MINUTE 和 SECOND 的值 |
void setFirstDayOfWeek(int value) | 设置一星期的第一天是哪一天 |
Calendar 对象可以调用 set() 方法将日历翻到任何一个时间,当参数 year 取负数时表示公元前。Calendar 对象调用 get() 方法可以获取有关年、月、日等时间信息,参数 field 的有效值Calendar 静态常量指定。
Calendar 类中定义了许多常量,分别表示不同的意义。
- Calendar.YEAR:年份。
- Calendar.MONTH:月份。
- Calendar.DATE:日期。
- Calendar.DAY_OF_MONTH:日期,和上面的字段意义完全相同。
- Calendar.HOUR:12小时制的小时。
- Calendar.HOUR_OF_DAY:24 小时制的小时。
- Calendar.MINUTE:分钟。
- Calendar.SECOND:秒。
- Calendar.DAY_OF_WEEK:星期几。
常用方法演示:
1、void add(int field, int amount),根据日历的规则,为给定的日历字段 field 添加或减去指定的时间量 amount,第一个参数虽然传的为int类型,但Java官方怕我们记错所以可以用”Calendar.”去得到我们想添加或减去的指定时间量,例如下列代码第一个参数传入”Calendar.DATE”,代表在天数上添加或减去:
//获取默为当前时间的Calendar日期对象
Calendar c = Calendar.getInstance();
//格式化日期输出当前日期
System.out.printf("%tF %<tT%n",c);
//加五天
c.add(Calendar.DATE,5);
System.out.printf("%tF %<tT%n",c);
//在加五天的基础上减10天
c.add(Calendar.DATE,-10);
System.out.printf("%tF %<tT%n",c);
运行结果展示:
2、void clear(),清空 Calendar 中的日期时间值。此处的清空时间并不是说将时间设置为“0000-00-00 00:00:00″,而是重置时间戳为0,即日期为:“1970-01-01 00:00:00”。代码演示:
Calendar c = Calendar.getInstance();
//格式化输出当前日期
System.out.printf("%tF %<tT%n",c);
//清除日期
c.clear();
//格式化输出清除后的日期
System.out.printf("%tF %<tT%n",c);
运行展示:
3、int get(int field),返回指定日历字段的值 int 类型参数也可以用“Calendar.”来代替,这样更方便编程人员来识别使用。
代码演示:
Calendar c = Calendar.getInstance();
//按年月日时分秒依次输出
System.out.println(c.get(Calendar.YEAR));
System.out.println(c.get(Calendar.MONTH));
System.out.println(c.get(Calendar.DATE));
System.out.println(c.get(Calendar.HOUR));
System.out.println(c.get(Calendar.MINUTE));
System.out.println(c.get(Calendar.SECOND));
运行结果展示:
4、
Date getTime(),返回一个表示此 Calendar 时间值(从格林威治时间 1970 年 01 月01 日 00 时 00 分 00 秒至现在的毫秒偏移量)的 Date 对象,而Date对象在获得时间戳时调用的为gettime()方法,因此我们可以利用此方法来事项将Calendar对象转化为时间戳。代码演示:
Calendar c = Calendar.getInstance();
//获得Date对象
Date date = c.getTime();
//利用Date对象获取时间戳
long l = date.getTime();
System.out.println(l);
运行结果演示:
5、long getTimeInMillis() ,4方法中获取时间戳的方法过于麻烦,我们可以利用此方法直接获取时间戳:
代码演示:
Calendar c = Calendar.getInstance();
//获取Calendar对象时间戳
long l = c.getTimeInMillis();
System.out.println(l);
运行结果展示:
6、void set(int field, int value) ,为指定的日历字段设置给定值,此方法们可以只针对年月日时分秒其中一项进行时间修改:
代码演示:
Calendar c = Calendar.getInstance();
//分别对年月日时分秒进行修改
c.set(Calendar.YEAR,2022);
c.set(Calendar.MONTH,1);
c.set(Calendar.DATE,1);
c.set(Calendar.HOUR,0);
c.set(Calendar.MINUTE,0);
c.set(Calendar.SECOND,0);
格式化输出修改后的Calendar对象
System.out.printf("%tF %<tT%n",c);
运行结果展示:
7、void set(int year, int month, int date),设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。设置年月日,时分秒默认为00:00:00,使用此方法进行设置时要将想要设置的年份减1,否则得不到想要的结果。
代码演示:
Calendar c = Calendar.getInstance();
//设置为2000年5月8日
c.set(2000,5-1,8);
//格式化输出
System.out.printf("%tF %<tT%n",c);
运行结果展示:
8、void set(int year, int month, int date, int hourOfDay, int minute, int second),该方法7方法相比方法名相同但参数列表不同,且该方法可以将时间设置精确到时分秒,同样的在设置月份的时候要进行减1。
代码演示:
Calendar c = Calendar.getInstance();
//设置时间为2000年5月8日12时5分59秒
c.set(2000,5-1,8,12,5,59);
System.out.printf("%tF %<tT%n",c);
运行结果展示:
版权声明:本文为博主作者:webliuq原创文章,版权归属原作者,如果侵权,请联系我们删除!
原文链接:https://blog.csdn.net/LiuQQ567/article/details/131256889