zoukankan      html  css  js  c++  java
  • 日期操作类--Calendar类

    Calendar-API

    Calendar类

    通过Date和DateFormat能够格式化并创建一个日期对象了,但是我们如何才能设置和获取日期数据的特定部分呢,比如说小时,日,或者分钟? 我们又如何在日期的这些部分加上或者减去值呢? 答案是使用Calendar 类。

    Calendar类的功能要比Date类强大很多,而且在实现方式上也比Date类要复杂一些。

    Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可。

    创建一个代表系统当前日期的Calendar对象

    Calendar c = Calendar.getInstance();//默认是当前日期

    创建一个指定日期的Calendar对象

    使用Calendar类代表特定的时间,需要首先创建一个Calendar的对象,然后再设定该对象中的年月日参数来完成。

    //创建一个代表2009年6月12日的Calendar对象
    Calendar c1 = Calendar.getInstance();
    c1.set(2009, 6 - 1, 12);

    Calendar类对象字段类型

    Calendar类中用以下这些常量表示不同的意义,jdk内的很多类其实都是采用的这种思想

    常量描述
    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类对象信息的设置

    Set设置

    如:

    Calendar c1 = Calendar.getInstance();

    调用:

    public final void set(int year,int month,int date)
    c1.set(2009, 6 - 1, 12);//把Calendar对象c1的年月日分别设这为:2009、6、12

    利用字段类型设置

    如果只设定某个字段,例如日期的值,则可以使用如下set方法:

    public void set(int field,int value)

     把 c1对象代表的日期设置为10号,其它所有的数值会被重新计算

    c1.set(Calendar.DATE,10);

    把c1对象代表的年份设置为2008年,其他的所有数值会被重新计算

    c1.set(Calendar.YEAR,2008);

    其他字段属性set的意义以此类推

    Add设置

    Calendar c1 = Calendar.getInstance();

    把c1对象的日期加上10,也就是c1也就表示为10天后的日期,其它所有的数值会被重新计算

    c1.add(Calendar.DATE, 10);

    把c1对象的日期减去10,也就是c1也就表示为10天前的日期,其它所有的数值会被重新计算

    c1.add(Calendar.DATE, -10);

    其他字段属性的add的意义以此类推

    Calendar类对象信息的获得

    Calendar c1 = Calendar.getInstance();
    // 获得年份
    int year = c1.get(Calendar.YEAR);
    // 获得月份
    int month = c1.get(Calendar.MONTH) + 1;
    // 获得日期
    int date = c1.get(Calendar.DATE);
    // 获得小时
    int hour = c1.get(Calendar.HOUR_OF_DAY);
    // 获得分钟
    int minute = c1.get(Calendar.MINUTE);
    // 获得秒
    int second = c1.get(Calendar.SECOND);
    // 获得星期几(注意(这个与Date类是不同的):1代表星期日、2代表星期一、3代表星期二,以此类推)
    int day = c1.get(Calendar.DAY_OF_WEEK);
  • 相关阅读:
    如何修改dmesg log buffer size
    phpmyadmin的初始账号密码是多少
    DirectFB 之 FillRectangle 绘制矩形
    DFB系列 之 Clear清空surface缓存
    DFB系列 之 Flip()更新buffe
    DFB系列 之 Bilp叠加
    DFB系列 之 SetCooperativeLevel协作级别
    DirectFB 之 实例图像不断右移
    DirectFB 之 环境配置
    DirectFB 之 简介
  • 原文地址:https://www.cnblogs.com/ClassNotFoundException/p/6008460.html
Copyright © 2011-2022 走看看