zoukankan      html  css  js  c++  java
  • 常用Java API:Calendar日期类

    摘要

    在蓝桥杯中有关于日期计算的问题,正好java中的Date类和Calendar类提供了对日期处理的一些方法。Date类大部分方法已经废弃了,所以本文将详细介绍Calendar类。

    Calendar类

    Calendar 类是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
    瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。

    常用的日历字段

    • YEAR 指示年的 get 和 set 的字段数字。
    • MONTH 指示月份的 get 和 set 的字段数字。
    • DAY_OF_MONTH get 和 set 的字段数字, 指示一个月中的某天。
    • DAY_OF_WEEK get 和 set 的字段数字, 指示一个星期中的某天。
    • DAY_OF_YEAR get 和 set 的字段数字, 指示当前年中的天数。
    • DAY_OF_WEEK_IN_MONTH get 和 set 的字段数字, 指示当前月中的第几个星期。
    • HOUR get 和 set 的字段数字,指示当天中的某小时
    • MINUTE get 和 set 的字段数字,指示当前小时中的某分钟
    • SECOND get 和 set 的字段数字,指示当前分钟中的某秒
    • time 以毫秒为单位,表示自格林威治标准时间 1970 年 1月 1 日 0:00:00 后经过的时间。
      (字段就是Claendar类的成员变量,用于存储当前日历的年月日等时间信息。

    Claendar类的实例化

    getInstance();//返回一个默认时区和语言环境的日历

    Calendar calendar = Calendar.getInstance();//赋值给calendar
    

    设置特定日期

    set(int field, int value);//第一个参数是日期字段,诸如YEAR、MONTH 等将给定的日历字段设置为给定值。
    set(int year, int month, int date)// 设置日历字段年月日的值

    Calendar calendar = Calendar.getInstance();//创建个实例
    int year = 2020;
    int month = 1;//1是二月 0是1月
    int day = 19;
    calendar.set(Calendar.YEAR, year);// 将year的值赋给calender的YEAR字段
    calendar.set(Calendar.MONTH, month);//将month的值赋给calender的MONTH字段
    calendar.set(Calendar.DAY_OF_MONTH);//将day的值赋值给calendder的DAT_OF_MONTH字段
    
    //以上就完成了对calender的字段设置。
    

    有趣的是MONTH字段是从0月开始计数的,所以12月对应的值是11。DAY_OF_WEEK中星期天对应的是1,星期一对应的是2,星期六对应的是7,而YEAR和DAY_OF_MONTH都是从1开始计数

    获取当前Calender实例的字段信息

    get(int field);// 获取给定字段的值

    Calendar calendar = Calendar.getInstance();
    // 设置日期为: 2020.2.19
    calendar.set(Calendar.YEAR, 2020);
    calendar.set(Calendar.MONTH, 1);
    calendar.set(Calendar.DAY_OF_MONTH, 19);
    // 获取2020.2.19是星期几
    System.out.print(calendar.get(Calendar.DAY_OF_WEEK));
    
    输出:
    4 // 4代表星期三
    

    增减时间

    add(int field, int amount);// 根据日历的规则,为给定的日历字段添加或减去指定的时间量。

  • 相关阅读:
    kubectl 命令详解
    codeforce344 C report
    poj3041 建图+最小顶点覆盖(最大匹配数)
    poj1637 混合欧拉回路的判定
    poj1149 最大流好题 难在建图 好题
    targan 算法模板
    poj2186 强连通分量 targan算法的应用
    poj2723 2分 + 2-sat
    poj3061 尺取法
    poj3207 2-sat基础题
  • 原文地址:https://www.cnblogs.com/wangzheming35/p/12330192.html
Copyright © 2011-2022 走看看