首页 > 编程语言 >Java Calendar 日历类型

Java Calendar 日历类型

时间:2023-11-23 09:23:59浏览次数:30  
标签:Java get int 日历 System Calendar calendar

Java Calendar 日历类型

概念

java.util.Claendar日历类,抽象类,在Date类后出现的,替换掉了很多Date类中的方法,该类将所有的可能用到的时间信息封装为静态成员变量,通过类名.静态成员变量获取时间字段值

获取方式

由于Calendar类是一个抽象类,语言敏感性,Calendar类并不是直接创建对象来获取时间属性值,而是通过静态方法创建,返回子类对象。

Calendar c = Calendar.getInstance();

Calendar类的常用的成员方法:

get(int field);Calendar类的get方法,用于获取日历字段的值,返回值的结果也是个int类型的值。
set(int field,int value);讲给定的日历字段设置为给定的值
add(int field,int amount);根据日历规则,为给定的日历字段添加或者是减去指定的时间量值
getTime();返回的是一个表示Calendar时间值(从历元到现在的毫秒偏移量)的Date对象

静态属性

Calendar类的一些静态属性如年,月,日,星期并不是表示的是2022-3-8 12:12:12。 而是用于指代set,get方法到底是取什么类型的值。作为set,get方法的第一个参数,用来指定设置获取年月日。
不能通过静态属性来获取时间!

属性 说明
Calendar.YEAR 指代年 ,值为1
Calendar.MONTH 指代月,值为2
Calendar.DAY_OF_MONTH 指代本月的日,(月从0开始)值为5
Calendar.DAY_OF_WEEK 指代本月的星期,(星期从星期天开始,算为1)值为7
Calendar.DAY_OF_YEAR 指代本年相对于当前时间过去了多少天。
Calendar.HOUR 十二小时制的小时
Calendar.HOUR_OF_DAY 二十四小时制的小时
Calendar.MINUTE
Calendar.SECOND
Calendar.MILLISECOND 毫秒

成员方法的参数

int field:日历类的字段,可以通过calendar类的静态成员变量获取
public static final int YARN = 1; //年
public static final int MOUTH = 2; //月
public static final int DATE = 5;//月中的某一天(与day_of_mouth意义相同)
public static final int DAY_OF_MONTH;//月中的第几天(与date意义相同)
public static final int HOUR = 10; //时
public static final int MINUTE= 12;//分
public static final int SECOND= 13;//秒

获取Calendar日历的部分日期

//获取给定的字段值
public static void demo01(Calendar calendar) {
    //使用public int get(int field)过去给定的日历字段值
    //获取年份
    int year = calendar.get(calendar.YEAR);
    System.out.println(year);

    //获取月份
    int month = calendar.get(Calendar.MONTH) + 1;
    System.out.println(month);//10 西方的日历 月份:0--11  东方1--12

    //获取日期
    int date = calendar.get(Calendar.DATE);
    System.out.println(date);

    //获取时
    int hour = calendar.get(Calendar.HOUR);
    System.out.println(hour);
    //获取时的24小时制
    int hours = calendar.get(Calendar.HOUR_OF_DAY);
    System.out.println(hours);
}

将给定的日历字段设置为给定的值

//将给定的日历字段设置为给定的值
public static void demo02(Calendar calendar) {
    //public void set(int field,int value)
    /**
    * int field:指定的日历字段(YEAR,MONTH,DATE....)
    * int calue:给指定的日历字段设置值
    */
    //把当前的年份设置为2050年
    calendar.set(Calendar.YEAR, 2050);
    //获取年份
    int year = calendar.get(Calendar.YEAR);
    System.out.println(year);

    //把当前的月份设置为5月
    calendar.set(Calendar.MONTH, 5);
    //再次获取月份
    int month = calendar.get(Calendar.MONTH);
    System.out.println(month);

    //设置日期为5日
    calendar.set(Calendar.DATE, 5);
    int date = calendar.get(Calendar.DATE);
    System.out.println(date);
}

根据日历规则,为给定的日历字段添加或者减去指定的事件量

 //根据日历规则,为给定的日历字段添加或者减去指定的事件量
public static void demo03(Calendar calendar) {
    //public abstract void add(int field,int amount) 把指定的字段增加或者减少指定的值
    /**
    * 参数:
    *      int field:指定的日历字段(YEAR,MONTH,DATE....)
    *      int amount:增加或者减少指定的数量
    *      正数:增加指定的数量
    *      负数:减少指定的数量
    */
    //把当前的年份增加两年
    calendar.add(Calendar.YEAR, 2);
    //把当前的月份减少3个月
    calendar.add(Calendar.YEAR, -3);

    //获取更改之后的年份和月份
    int year = calendar.get(Calendar.YEAR);
    int month = calendar.get(Calendar.MONTH);
    int date = calendar.get(Calendar.DATE);
    System.out.println(year + "年" + month + "月" + date + "日");
}

获取一个Calendar日历对象对应的Date日期对象

 //获取一个Calendar日历对象对应的Date日期对象
public static void demo04(Calendar calendar){
    //public Date getTime() 把日历对象转换成日期对象
    Date date = calendar.getTime();
    System.out.println(date);//Mon Nov 30 15:15:05 CST 2020

    //获取当前时间的时区
    TimeZone timeZone = calendar.getTimeZone();
    System.out.println(timeZone);

    //获取当前时间的毫秒值
    long timeInMillis = calendar.getTimeInMillis();
    System.out.println("calendar日历对应的毫秒值:"+timeInMillis);

    long timeMillis = System.currentTimeMillis();
    System.out.println("这是System系统获取的毫秒值:"+timeInMillis);

    Date date1 = new Date();
    long time = date1.getTime();
    System.out.println("这是date获取的毫秒值:"+time);
}

标签:Java,get,int,日历,System,Calendar,calendar
From: https://www.cnblogs.com/yhm050305/p/17850805.html

相关文章

  • Java LocalDateTime 日期类型
    JavaLocalDateTime日期类型一.新时间日期API常用、重要对象介绍ZoneId:时区ID,用来确定Instant和LocalDateTime互相转换的规则Instant:用来表示时间线上的一个点(瞬时)LocalDate:表示没有时区的日期,LocalDate是不可变并且线程安全的LocalTime:表示没有时区的时间,Loc......
  • 中介者模式--Java实现
    具体代码//AbstractChatroom.javapackageorg.example.test017;importjavax.swing.plaf.basic.BasicTreeUI;publicabstractclassAbstractChatroom{publicabstractvoidregister(Membermember);publicabstractvoidsendText(Stringfrom,Stringto,Str......
  • 备忘录模式--Java实现
    具体代码//Memento.javapackageorg.example.test018;publicclassMemento{publicStringgetAccount(){returnaccount;}publicvoidsetAccount(Stringaccount){this.account=account;}publicStringgetPassword(){......
  • This application requires a java runtime environment 1.6.0
    解决Thisapplicationrequiresajavaruntimeenvironment1.6.0问题描述在安装ptolemyII的时候,提示我没有java运行环境。但是实际上作为jvm的hn,我电脑上就有各种版本的jdk,什么环境变量、java-version都保证没问题,别的软件也能运行,就它不行问题解决jdk是通过解压而后设......
  • java图形界面化计算器
     虽然java的图形界界面化技术大部分都已经没有人使用了,但应老师的课堂要求,还是进行了一些简单的学习,并实现了一个图形界面化的可混合运算的简易计算器这个计算器主要使用了java本身带有的Swing实现图形界面化,以及学习了部分的栈来实现混合运算先把代码放上,除了(-)按键还没做好之外,其......
  • Java Scanner 类的使用
    目录1.概述2.使用举例2.1.从不同的输入源读取数据2.2.next()和nextLine()的区别2.3.读取大小已知的一维数组2.4.读取大小未知的一维数组2.5.读取长度大小已知的二维数组2.6.读取长度大小未知的二维锯齿数组1.概述(1)Scanner类是Java中一个用于读取用户输入的工......
  • Java正则表达式从入门到精通​
    Java正则表达式从入门到精通JAVA正则表达式规则Java中的正则表达式规则,在java.util.regex.Pattern类文档中有详细说明。字符类匹配符(只匹配一个字符)规则字符说明[abc]匹配a,b或c中的任意一个字符[^abc]除a,b或c之外的任意一个字符(取反)[a-zA-Z]包含在a到z或A到Z范围内的任意一个字符(......
  • Java——反射
    一、类的加载当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化加载就是将class文件读入内存,并为之创建一个Class对象任何类被使用时系统都会建立一个Class对象连接验证是......
  • Java语言基础知识全总结
    一.Java的优点1.      跨平台性。一次编译,到处运行。Java编译器会将Java代码编译成能在JVM上直接运行的字节码文件,C++会将源代码编译成可执行的二进制代码文件,所以C++执行速度快2.      纯面向对象。Java所有的代码都必须在类中书写。C++兼具面向对象和面向过程的特......
  • 【Java基础】集合之——ArrayList类
    集合集合,是一种容器,类似数组,集合大小可变ArrayList可变原理当创建ArrayList集合容器时,底层会存在一个长度为10个大小的空数组如果元素溢出,则扩容原数组1.5倍大小的新数组将原数组数据,拷贝到新数组中将新元素添加到新数组原数组变成垃圾数据由Java的垃圾处理器不定时回收......