• JAVA calendar


    时间可以用这个

    Calendar类的属性有很多,
    YEAR 年
    MONTH 月(注意:从0开始算起,最大11;0代表1月,11代表12月)
    DATE 天
    HOUR 时
    MINUTE分
    SECOND秒

    所有方法

    //根据日历的规则,为给定的日历字段添加或减去指定的时间量。
    abstract void add(int field, int amount)
    //判断此 Calendar 表示的时间是否在指定 Object 表示的时间之后,返回判断结果。
    boolean after(Object when)
    // 判断此 Calendar 表示的时间是否在指定 Object 表示的时间之前,返回判断结果。
    boolean before(Object when)
    //给定此 Calendar 的时间值,返回指定日历字段可能拥有的最大值。
    int getActualMaximum(int field)
    // 给定此 Calendar 的时间值,返回指定日历字段可能拥有的最小值。
    int getActualMinimum(int field)
    // 获取一星期的第一天;例如,在美国,这一天是 SUNDAY,而在法国,这一天是 MONDAY。
    int getFirstDayOfWeek()
    //返回此 Calendar 实例给定日历字段的最高的最小值。
    abstract int getGreatestMinimum(int field)
    //使用默认时区和语言环境获得一个日历。
    static Calendar getInstance()
    //使用默认时区和指定语言环境获得一个日历。
    static Calendar getInstance(Locale aLocale)
    // 使用指定时区和默认语言环境获得一个日历。
    static Calendar getInstance(TimeZone zone)
    //使用指定时区和语言环境获得一个日历。
    static Calendar getInstance(TimeZone zone, Locale aLocale)
    //返回此 Calendar 实例给定日历字段的最低的最大值。
    abstract int getLeastMaximum(int field)
    //返回此 Calendar 实例给定日历字段的最大值。
    abstract int getMaximum(int field)
    // 获取一年中第一个星期所需的最少天数,例如,如果定义第一个星期包含一年第一个月的第一天,则此方法将返回 1。
    int getMinimalDaysInFirstWeek()

    // 设置一星期的第一天是哪一天;例如,在美国,这一天是 SUNDAY,而在法国,这一天是 MONDAY。
    void setFirstDayOfWeek(int value)

    // 设置一年中第一个星期所需的最少天数,例如,如果定义第一个星期包含一年第一个月的第一天,则使用值 1 调用此方法。
    void setMinimalDaysInFirstWeek(int value)
    // 使用给定的 Date 设置此 Calendar 的时间。
    void setTime(Date date)
    // 用给定的 long 值设置此 Calendar 的当前时间值。
    void setTimeInMillis(long millis)

    //返回此日历的字符串表示形式。
    String toString()

    set

    Calendar ca = Calendar.getInstance();
    //修改日历的指定时间 ca.setTime(sdf.parse(“2021-09-20 16:01:01:100”)); System.out.println(“修改日期后的日历时间是:” + sdf.format(ca.getTime())); ca.set(Calendar.MONTH,Calendar.JANUARY); System.out.println(“修改月份后的日历时间是:” + sdf.format(ca.getTime()));

    get

    SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss:SSS”);
    System.out.println(“当前时间是:” + sdf.format(new Date()));
    Calendar ca = Calendar.getInstance();
    System.out.println(“当前年份:” + ca.get(Calendar.YEAR));
    System.out.println(“当前月:” + ca.get(Calendar.MONTH));// 初始月份是从0开始,所以输出值比是几月份小1
    System.out.println(“当前日期:” + ca.get(Calendar.DATE));
    System.out.println(“当前年份第几个星期:” + ca.get(Calendar.WEEK_OF_YEAR));
    System.out.println(“当前月份第几个星期:” + ca.get(Calendar.WEEK_OF_MONTH));
    System.out.println(“当前年份第几天:” + ca.get(Calendar.DAY_OF_YEAR));
    System.out.println(“当前月份第几天:” + ca.get(Calendar.DAY_OF_MONTH));
    System.out.println(“当前星期第几天:” + ca.get(Calendar.DAY_OF_WEEK));
    System.out.println(“当前月份第几个星期:” + ca.get(Calendar.DAY_OF_WEEK_IN_MONTH));
    System.out.println(“当天第几个小时:” + ca.get(Calendar.HOUR_OF_DAY));
    System.out.println(“当前小时第几分钟:” + ca.get(Calendar.MINUTE));
    System.out.println(“当前分钟第几秒:” + ca.get(Calendar.SECOND));
    System.out.println(“当前秒数第几毫秒:” + ca.get(Calendar.MILLISECOND));
    }

    Calendar calendar=Calendar.getInstance(); //通过getInstance方法获取Calendar的引用;
    calendar.setTime(new Date()); System.out.println(“现在时间是:”+new Date());
    String year=String.valueOf(calendar.get(Calendar.YEAR)); //现在是那一年 String month=String.valueOf(calendar.get(Calendar.MONTH)+1); //现在是几月份 String day=String.valueOf(calendar.get(Calendar.DAY_OF_MONTH)); //现在是月份的第几天 String week=String.valueOf(calendar.get(Calendar.DAY_OF_WEEK)-1); //现在是星期几 System.out.println(“现在时间是:”+year+“年”+month+“月”+day+“日,星期”+week); long year2016=calendar.getTimeInMillis(); calendar.set(1989,9,26);//这里与真实的月份之间相差1 //设置时间 (year,month,day) long year1989=calendar.getTimeInMillis(); long days=(year2016-year1989)/(10006060*24); System.out.println(“今天和1989年10月26日相隔”+days+“天,”+“也就是说我在这个美丽的星球上已经幸福的生活了”+days+“天。”); System.out.println(calendar.get(Calendar.DAY_OF_YEAR)); //获取设置后的那天是当年中的第几天 System.out.println(calendar.get(Calendar.DAY_OF_MONTH)); //获取设置后的那天是当月中的第几天 System.out.println(calendar.get(Calendar.DAY_OF_WEEK));//获取设置后的那天是当星期中的第几天

    Calendar成员变量当中,用get,set
    YEAR这个字段的含义是年份 2017-1-1,那么执行:System.out.println(instance.get(Calendar.YEAR)) 值就为2017
    2MONTH 月份,2017-9-1,
    System.out.println(instance.get(Calendar.MONTH));值8,值得注意的是在Calendar当中MONTH的开始月份为0
    3 WEEK_OF_YEAR 当前年的总周数当中,当前日期属于第几周System.out.println(“WEEK_OF_YEAR:”+instance.get(Calendar.WEEK_OF_YEAR));System.out.println(“一年有”+instance.getActualMaximum(Calendar.WEEK_OF_YEAR)+“个周”);打印出的结果为:WEEK_OF_YEAR:12一年有52个周
    4 DATE当前时间为多少号,例如今天为2017-3-20,
    System.out.println(instance.get(Calendar.DATE));打印的值为:20
    5 DAY_OF_MONTH这个月的总天数当中当前过了多少天(其实它的值和上面的DATE的值是一样的)System.out.println(“DAY_OF_MONTH:”+instance.get(Calendar.DAY_OF_MONTH));System.out.println(“当前月有”+instance.getActualMaximum(Calendar.DAY_OF_MONTH)+“天”);打印的结果为:DAY_OF_MONTH:20当前月有31天6 DAY_OF_YEAR当年的所有天数当中,当天过了多少天System.out.println(“DAY_OF_YEAR:”+instance.get(Calendar.DAY_OF_YEAR));System.out.println(“当前年份有”+instance.getActualMaximum(Calendar.DAY_OF_YEAR)+“天”);打印的结果为:DAY_OF_YEAR:79当前年份有365天
    7 DAY_OF_WEEK一周7天当中,当前时间是星期几(1-7),值得注意的是一周的开始是星期日,结束是星期六,如果今天是星期一,那么instance.get(Calendar.DAY_OF_WEEK)的值就应该是2
    8 DAY_OF_WEEK_IN_MONTH指的是当前时间是所在当前月的第几个星期,一个月的1号为第一周,8号为第二周。
    9 WEEK_OF_MONTH同样是按当前时间在当前月的星期数,可是它的值不同于8的DAY_OF_WEEK_IN_MONTH,它计算当前星期的标准不同,例如说这个月的1号是星期3,那么是第一周,那么到了5号星期日就已经是第二周了,如果按8的DAY_OF_WEEK_IN_MONTH的计算5号才第一周System.out.println(“WEEK_OF_MONTH:”+instance.get(Calendar.WEEK_OF_MONTH));System.out.println(“当前月有”+instance.getActualMaximum(Calendar.WEEK_OF_MONTH)+“个周”);打印出来的结果为:WEEK_OF_MONTH:4当前月有5个周计算出来是4.4个周,它显示的为5个周

    2 AM_PM用于判断当前时间是AM,还是PM,若是AM值为0,若是PM为1
    2.1HOUR显示当前时间的12小时制2.2HOUR_OF_DAY显示当前时间的24小时制2.3MINUTE显示当前时间的分钟数2.4SECOND显示当前时间的秒数2.5MILLISECOND显示当前时间的毫秒数

    三 add

    add(f, delta) 将 delta 添加到 f 字段中
    SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss:SSS”); System.out.println(“当前时间是:” + sdf.format(new Date()));
    Calendar ca = Calendar.getInstance(); //修改日历的指定时间 ca.setTime(sdf.parse(“2021-10-31 16:01:01:100”)); System.out.println(“修改日期后的日历时间是:” + sdf.format(ca.getTime()));

    ca.add(Calendar.MONTH,1);

    增加年月

    System.out.println(“修改月份后的日历时间是:” + sdf.format(ca.getTime()));

    与 set() 不同,add() 强迫日历系统立即重新计算日历的毫秒数和所有字段

    计算时间差

    long mill is of day =24*60 60 1000
    (cal.gettimeinmillis()-yuanlai.gettimeinmillis())/millisofday
    结果是long型

    算出来是多少天

  • 相关阅读:
    109.网络安全渗透测试—[权限提升篇7]—[Windows Mysql UDF提权]
    23 种设计模式详解(C#案例)
    QtCreator报大量未知标识符错误的解决方法
    iShot——Mac上功能最全的截图、录屏创造工具
    新一代开源免费的终端工具,太酷了
    k8s client-go源码分析 informer源码分析(6)-Indexer源码分析
    Docker搭建Redis cluster集群
    准备好迁移上云了?请收下这份迁移步骤清单
    ElasticSearch之健康状态
    Android Studio 的六种基本布局
  • 原文地址:https://blog.csdn.net/shangxianjiao/article/details/126007875