zoukankan      html  css  js  c++  java
  • Java——Calendar

    一、介绍

    java.util.Calendar类表示日历,内含有各种时间信息,以及获取,计算时间的方法。Calendar本身是一个抽象类,有直接子类GregorianCalendar,使用时需要有日历对象,可以借助子类的构造方法创建对象,也可以通过Calendar提供的静态方法getInstance日历对象。

    Calendar c = Calendar.getInstance();   // 静态方法
    

    二、getInstance

    public static Calendar getInstance()

    getInstance是Calendar类中的一个静态方法,用来获取它的子类GregorianCalendar对象。

    三、日历字段值

    接下来的三个方法都有一个整数类型参数field,这里说明一下,field用来区分当前要获取或者操作的日期时间数据的。field数据的值使用Calendar中定义的整数常量来表示,如下

    Calendar.YEAR   // 年
    Calendar.MONTH   // 月
    Calendar.DAY_OF_MONTH   // 月中的日期
    Calendar.HOUR   // 小时
    Calendar.MINUTE   // 分钟
    Calendar.SECOND   // 秒
    Calendar.DAY_OF_WEEK   // 星期

    四、get

    public int get(int field)   // field 是 日历字段值

    get方法用来获取指定日历字段的时间值。

    案例

    public class CalendarTest {
        public static void main(String[] args) {
            Calendar c = Calendar.getInstance();
            int year = c.get(Calendar.YEAR);
            System.out.println(year);   // 2021
        }
    }

    五、set

    public void set(int field, int value)   // field是日历字段值,value是要修改的值

    set方法用来设置指定字段的时间值。

    案例,例如我想把时间改为2021年5月1号

    public class CalendarTest {
        public static void main(String[] args) {
            Calendar c = Calendar.getInstance();
            c.set(Calendar.YEAR, 2021);
            c.set(Calendar.MONTH, 4);
            c.set(Calendar.DATE, 1);
            System.out.println(c.get(Calendar.YEAR) + "-" + (c.get(Calendar.MONTH) + 1) + "-" + c.get(Calendar.DATE));   // 2021-5-1
        }
    }

    set方法也提供了许多重载方法,方便我们一次性设置年、月、日之类的操作,比如上面的代码可以简化为如下

    public class CalendarTest {
        public static void main(String[] args) {
            Calendar c = Calendar.getInstance();
            c.set(2021,4,1);
            System.out.println(c.get(Calendar.YEAR) + "-" + (c.get(Calendar.MONTH) + 1) + "-" + c.get(Calendar.DATE));   // 2021-5-1
        }
    }

    六、add

    public void add(int field, int amount)   // field 是日历字段值,amount是增加/减少的值

    add方法用来为某个字段增加/减少指定的值

    案例,比如在当前日期的基础上增加一星期

    public class CalendarTest {
        public static void main(String[] args) {
            Calendar c = Calendar.getInstance();
            c.set(2021,4,1);
            System.out.println(c.get(Calendar.YEAR) + "-" + (c.get(Calendar.MONTH) + 1) + "-" + c.get(Calendar.DATE));   // 2021-5-1
            c.add(Calendar.WEEK_OF_YEAR, 1);
            System.out.println(c.get(Calendar.YEAR) + "-" + (c.get(Calendar.MONTH) + 1) + "-" + c.get(Calendar.DATE));   // 2021-5-8
        }
    }

    这里也可以后退时间,只需改变的值设为负数即可,如下

    public class CalendarTest {
        public static void main(String[] args) {
            Calendar c = Calendar.getInstance();
            c.set(2021,4,8);
            System.out.println(c.get(Calendar.YEAR) + "-" + (c.get(Calendar.MONTH) + 1) + "-" + c.get(Calendar.DATE));   // 2021-5-8
            c.add(Calendar.WEEK_OF_YEAR, -1);
            System.out.println(c.get(Calendar.YEAR) + "-" + (c.get(Calendar.MONTH) + 1) + "-" + c.get(Calendar.DATE));   // 2021-5-1
        }
    }
    

      

  • 相关阅读:
    A journey on the Android Main Thread
    android的消息处理机制(图+源码分析)——Looper,Handler,Message
    用fragment创建一个选项卡
    fragment的生命周期
    动态创建fragment
    自定义自动换行布局
    Android开源框架Universal-Image-Loader完全解析(三)
    第七章 摄影技术
    第六章 镜头的成像像质评价
    第五章 镜头像差的成因,校正及规避方法
  • 原文地址:https://www.cnblogs.com/xulinjun/p/14769367.html
Copyright © 2011-2022 走看看