• java的Calendar总结


    Calendar的声明

    public abstract class Calendar extends Objectimplements Serializable, Cloneable, Comparable<Calendar>

      该类被abstract所修饰,说明不能通过new的方式来获得实例,对此,Calendar提供了一个类方法getInstance,以获得此类型的一个通用的对象,getInstance方法返回一个Calendar对象(该对象为Calendar的子类对象),其日历字段已由当前日期和时间初始化:

    Calendar rightNow = Calendar.getInstance();

     Calendar常用的方法

     package com.test.calendar;
      
      import java.util.Calendar;
      
      import org.junit.Before;
      import org.junit.Test;
      
      public class CalendarDemo {
          Calendar calendar = null;
     
         @Before
         public void test() {
             calendar = Calendar.getInstance();
         }
     
         // 基本用法,获取年月日时分秒星期
         @Test
         public void test1() {
             // 获取年
             int year = calendar.get(Calendar.YEAR);
     
             // 获取月,这里需要需要月份的范围为0~11,因此获取月份的时候需要+1才是当前月份值
             int month = calendar.get(Calendar.MONTH) + 1;
     
            // 获取日
             int day = calendar.get(Calendar.DAY_OF_MONTH);
     
             // 获取时
             int hour = calendar.get(Calendar.HOUR);
             // int hour = calendar.get(Calendar.HOUR_OF_DAY); // 24小时表示
    
             // 获取分
             int minute = calendar.get(Calendar.MINUTE);
     
             // 获取秒
            int second = calendar.get(Calendar.SECOND);
     
             // 星期,英语国家星期从星期日开始计算
             int weekday = calendar.get(Calendar.DAY_OF_WEEK);
    
             System.out.println("现在是" + year + "年" + month + "月" + day + "日" + hour
                     + "时" + minute + "分" + second + "秒" + "星期" + weekday);
         }
     
         // 一年后的今天
         @Test
         public void test2() {
             // 同理换成下个月的今天calendar.add(Calendar.MONTH, 1);
             calendar.add(Calendar.YEAR, 1);
     
             // 获取年
             int year = calendar.get(Calendar.YEAR);
     
             // 获取月
             int month = calendar.get(Calendar.MONTH) + 1;
     
             // 获取日
             int day = calendar.get(Calendar.DAY_OF_MONTH);
     
             System.out.println("一年后的今天:" + year + "年" + month + "月" + day + "日");
         }
     
         // 获取任意一个月的最后一天
         @Test
         public void test3() {
             // 假设求6月的最后一天
             int currentMonth = 6;
             // 先求出7月份的第一天,实际中这里6为外部传递进来的currentMonth变量
           // 1
            calendar.set(calendar.get(Calendar.YEAR), currentMonth, 1);
     
             calendar.add(Calendar.DATE, -1);
     
             // 获取日
             int day = calendar.get(Calendar.DAY_OF_MONTH);
    
             System.out.println("6月份的最后一天为" + day + "号");
         }
     
         // 设置日期
        @Test
         public void test4() {
             calendar.set(Calendar.YEAR, 2000);
             System.out.println("现在是" + calendar.get(Calendar.YEAR) + "年");
             calendar.set(2008, 8, 8);
             // 获取年
            int year = calendar.get(Calendar.YEAR);
     
            // 获取月
             int month = calendar.get(Calendar.MONTH);
    
            // 获取日
             int day = calendar.get(Calendar.DAY_OF_MONTH);
    
            System.out.println("现在是" + year + "年" + month + "月" + day + "日");
        }
     }

    程序输出结果:

     现在是2016年11月7日11时42分18秒星期2
     一年后的今天:2017年11月7日
     6月份的最后一天为30号
     现在是2000年
     现在是2008年8月8日

    Calendar类中也有before,after,compareTo等方法,用法与Date类的类似,只是现在推荐用Calendar类操作日期。

    参考:https://www.cnblogs.com/huangminwen/p/6041168.html

  • 相关阅读:
    [NOI Online 2021 提高组] 愤怒的小 N
    CF1474F 1 2 3 4 ...
    CF1466H Finding satisfactory solutions
    CF1336F Journey
    [PKUSC2021]代金券
    如何科学地设计对拍随机种子
    CF1168E Xor Permutations
    「JOISC 2019 Day2」两种运输
    springboot json参数
    springboot整合webserver应用
  • 原文地址:https://www.cnblogs.com/StarZhai/p/9990125.html
Copyright © 2020-2023  润新知