美文网首页
Calendar常用方法

Calendar常用方法

作者: zizi192 | 来源:发表于2017-07-21 15:38 被阅读0次

    Calendar使用方法

    抽象Calendar类提供了一组方法,这些方法允许将以毫秒为单位的时间转换为一组有用的分量。可以提供信息的类型包括:年,月,日,时,分和秒。推荐使用Calendar来处理日期和时间

    Calendar常用方法如下:

    /**
     * Constructs a new instance of the {@code Calendar} subclass appropriate for the
     * default {@code Locale} and default {@code TimeZone}, set to the current date and time.
     */
    Calendar calendar = Calendar.getInstance();
    
    //获取年月日时分秒
    calendar .get(Calendar.YEAR);
    calendar .get(Calendar.MONTH) ;  // 0-11,分别表示1-12月
    calendar .get(Calendar.DATE);  //1-31
    calendar .get(Calendar.HOUR_OF_DAY);  //24小时制
    calendar .get(Calendar.MINUTE);  
    calendar .get(Calendar.SECOND);
    
    //设置年月日时分秒
    calendar .set(Calendar.HOUR_OF_DAY, 17);
    calendar .set(Calendar.MINUTE, 30);
    
    //获取明天的日历信息
    calendar .add(Calendar.DAY_OF_YEAR, 1);
    //获取昨天的日历信息
    calendar .add(Calendar.DAY_OF_YEAR, -1);
    
    //获取当前时间的毫秒显示
    calendar .getTimeInMillis()
    
    //常用field
    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——星期几
    

    Calendar也可以用来做时间的比较,示例如下:

    public static boolean isBeforeCurrentTime(int year, int month, int day, int hour, int mininute){
        Calendar spec = Calendar.getInstance();
        spec.set(Calendar.YEAR, year);
        spec.set(Calendar.MONTH, month);
        spec.set(Calendar.DAY_OF_MONTH, day);
        spec.set(Calendar.HOUR_OF_DAY, hour);
        spec.set(Calendar.MINUTE, mininute);
    
        boolean ret = false;
        Calendar current = Calendar.getInstance();
    
        if (spec.compareTo(current) <= 0){
            ret = true;
        }
    
        return ret;
    }
    

    GregorianCalendar是Calendar的一个实现,大家熟悉的标准日历(格列高利历)的具体工具。Calendar的getInstance( )方法返回默认的GregorianCalendar实例。

    可以使用add方法,来修改指定域的值。方法定义如下,其中int的值可正可负。正数表示将时间向后推移;负数表示向前推移。该方法可以解决时间跨域的问题,如2017-06-30执行add(Calendar.DAY,1),时间会自动变为2017-07-01;

    /**
    * Adds the given amount to a {@code Calendar} field.
    *
    * @param field
    *            the {@code Calendar} field to modify.
    * @param value
    *            the amount to add to the field.
    * @throws IllegalArgumentException
    *                if {@code field} is {@code DST_OFFSET} or {@code
    *                ZONE_OFFSET}.
    public abstract void add(int field, int value);
    

    相关文章

      网友评论

          本文标题:Calendar常用方法

          本文链接:https://www.haomeiwen.com/subject/bejmhxtx.html