Java入门第100课——Calendar的getInstance方法

不知不觉到第100课了,码字真的累,写完后还要反复检查是否有笔误,以免对大家造成困扰。后面还有好多课时,真的是从零基础开始,一直到框架。不知能不能坚持写完,关注的人越多更的越快。最近更的比较快是因为有存货,存货还能撑50课的样子。一天不吃不喝最多也就写10个课时。有点啰嗦了,有什么想法给我留言吧。问题Calendar类是一个抽象类,它为特定瞬间与一组诸如YE…

大家好,又见面了,我是你们的朋友全栈君。

不知不觉到第100课了,码字真的累,写完后还要反复检查是否有笔误,以免对大家造成困扰。

后面还有好多课时,真的是从零基础开始,一直到框架。

不知能不能坚持写完,关注的人越多更的越快。

最近更的比较快是因为有存货,存货还能撑50课的样子。

一天不吃不喝最多也就写10个课时。

有点啰嗦了,有什么想法给我留言吧。

问题

    Calendar类是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法。

    本案例要求获取Calendar类的实例,获取实例后做如下操作:

    1)获取Calendar实例所属的实际类型,并输出。

    2)将Calendar对象转换为Date对象,并输出该Date对象。

    3)使用GregorianCalendar构建对象,该对象对应的日期为2013年12月25日,将GregorianCalendar对象转换为Date对象,并输出该Date对象。

方案

    1)首先,使用Calendar类的getInstance方法获取Calendar类的对象,然后使用下列代码获取该对象所属的实际类型,并输出,代码如下所示:

System.out.println(c.getTime());

    2)使用Calendar类的getTime方法,可以将Calendar对象转换为Date对象,然后,输出该Date类的对象。

    3)使用GregorianCalendar构建日期为2013年12月25日的对象,然后,GregorianCalendar类的getTime方法将GregorianCalendar对象转换为Date对象,并输出该Date对象。

步骤

    实现此案例需要按照如下步骤进行。

步骤一:创建测试方法

    首先新建类TestCalendar;然后,在该类下新建测试方法testGetInstance,代码如下所示:

    package day03;
    
    import java.util.Calendar;
    import java.util.GregorianCalendar;
    import org.junit.Test;
    
    public class TestCalendar{
     /**
      *测试getInstance方法
      */
      @Test
      public void testGetInstance(){
      
      }
    }

步骤二:创建Calendar类的实例

    首先,使用Calendar类的getInstance方法获取Calendar类的对象,然后使用下列代码获取该对象所属的实际类型,并输出,代码如下所示:

    package day03;
    
    import java.util.Calendar;
    import java.util.GregorianCalendar;
    import org.junit.Test;
    
    public class TestCalendar{
     /**
      *测试getInstance方法
      */
      @Test
      public void testGetInstance(){
          Calendar c=Calendar.getInstance();
          //输出Calendar对象所属的实际类型
          System.out.println(c.getClass().getName());
      }
    }

步骤三:运行

    运行testGetInstance方法,控制台输出结果如下所示:

    java.util.GregorianCalendar

    从控制台的输出结果可以看出,对象c所属的实际类型为GregorianCalendar,这是因为,历史上有着许多种纪年方法,它们的差异实在太大了,比如说一个人的生日是”七月七日”,那么一种可能是阳(公)历的七月七日,它也可以是阴(农)历的七月七日。为了统一计时,全世界通常选择最普及、最通用的日历:Gregorian Calendar(格里高历),也就是我们所说的公历。

    Calendar类本身是一个抽象类,它是所有日历类的模板,并提供了一些所有日历通用的方法;但它本身不能直接实例化对象,程序只能创建Calendar子类的实例,Java本身提供一个GregorianCalendar类,一个代表格里高历的子类,它代表了我们通常所说的公历。Calendar类提供了几个静态getInstance方法来获取Calendar对象,这些方法根据TimeZone、Locale来创建Calendar对象。

    本案例中使用的getInstance方法刚好使用了默认的TimeZone、Locale来创建Calendar对象,通过输出结果可以看出默认的TimeZone、Locale创建的Calendar对象所属的实际类型为GregorianCalendar。

步骤四:将Calendar对象转换为Date对象

    package day03;
    
    import java.util.Calendar;
    import java.util.GregorianCalendar;
    import org.junit.Test;
    
    public class TestCalendar{
     /**
      *测试getInstance方法
      */
      @Test
      public void testGetInstance(){
          Calendar c=Calendar.getInstance();
          //输出Calendar对象所属的实际类型
          System.out.println(c.getClass().getName());
          
          //getTime方法返回对应的Date对象
          System.out.println(c.getTime());
      }
    }

步骤五:使用GregorianCalendar构建日期对象

    使用GregorianCalendar构建日期为2013年12月25日的对象,然后,GregorianCalendar类的getTime方法将GregorianCalendar对象转换为Date对象,并输出该Date对象,代码如下所示:

    package day03;
    
    import java.util.Calendar;
    import java.util.GregorianCalendar;
    import org.junit.Test;
    
    public class TestCalendar{
     /**
      *测试getInstance方法
      */
      @Test
      public void testGetInstance(){
          Calendar c=Calendar.getInstance();
          //输出Calendar对象所属的实际类型
          System.out.println(c.getClass().getName());
          
          //getTime方法返回对应的Date对象
          System.out.println(c.getTime());
          
          //创建GregorianCalendar对象
          GregorianCalendar c1=new GregorianCalendar(2013,Calendar.DECEMBER,25);    
          System.out.println(c1.getTime());
      }
    }

步骤六:运行

    运行testGetInstance方法,控制台输出结果如下所示:

    java.util.GregorianCalendar
    Mon Jan 20 10:40:39 CST 2014
    Wed Dec 25 00:00:00 CST 2013

    观察上述代码可以看出已经将Calendar对象和GregorianCalendar对象转换为Date对象。

    总结前几个案例可以知道时间的表示方式可以是Date、long或者Calendar,它们之间的相互转换如图-1所示。

image.png

关注公众号,获取学习视频

Java入门第100课——Calendar的getInstance方法

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/129566.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • nginx作为反向代理的特性_ssh 反向代理

    nginx作为反向代理的特性_ssh 反向代理文章目录问题描述解决方案sub_filter方案使用重定向单独域名访问问题描述现在的企业服务,往往不是单体的,同时可能涉及中间件的访问如dubbo、solr、mq等。对于中间件的监控页面访问,如果直接暴露在公网,肯定这安全。需发对中间件访问进行安全加固,方法主要有:(1)限制使用IP白名单访问。(2)安全密码访问,不使用简单密码,对于没有密码的,可以使用basic认证,强密码访问。(3)…

  • spring boot dubbo配置(上古卷轴5基础整合包)

    SpringBoot整合Dubbo3.0基础配置(dubbo-spring-boot-starter)一、说明众所周知,阿里早已把dubbo捐赠给了Apache,现在dubbo由Apache在维护更新,dubbo也已经成了Apache下的顶级项目。所以本demo项目所依赖的坐标是Apache官方最新的3.0.4坐标。<dependency><groupId>org.apache.dubbo</groupId><artifac

  • idea打开工程无法运行java程序_如何运行一个java程序

    idea打开工程无法运行java程序_如何运行一个java程序有时候想运行别人的项目,但是别人的项目并非IDEA项目(甚至只有源码),当我们打开项目时候,并不能运行,我们却不知道怎么办。经过多次查找和尝试,最终终于能够运行起来了。记一下解决的方法。这是源码打开的项目首先,查看sdk是否设置了。可以在File=》ProjectStructure=》Project里面查看并设置。但是,设置后还是不可以运行。如下图:设置SDK…

  • 二叉树前序遍历Java「建议收藏」

    二叉树前序遍历Java「建议收藏」二叉树的前序遍历给你二叉树的根节点root,返回它节点值的前序遍历。示例1:输入:root=[1,null,2,3]输出:[1,2,3]示例2:输入:root=[]输出:[]示例3:输入:root=[1]输出:[1]示例4:输入:root=[1,2]输出:[1,2]示例5:输入:root=[1,null,2]输出:[1,2]方法:迭代思路:建立一个ArrayList数组进行储存元素顺序声明一个栈,按照根左右的顺序数组先a

  • 医咖会SPSS免费教程学习笔记—2*C卡方检验

    医咖会SPSS免费教程学习笔记—2*C卡方检验1.2C卡方检验需要满足的假设:(1)观测变量是二分类变量(2)有多个分组(3)观测值相互独立(4)任意单元格的期望频数大于52.2C卡方检验的组间比较请依次点击:分析—描述统计—交叉表—将变量分别拖入行和列—点击右侧“统计”—选择“卡方”—继续点击右侧“单元格”—选择计数下的“实测”,百分比下的“列”,勾选z检验选择调整p值(邦弗仑尼法)3.结果解读两两比较有无差异,看输出的交叉表中计数下标是否一致。若一致,则无差异;否则,有差异总体有无差异,看输出的卡方检验表格中的显著性水平…

  • linux查看全部环境变量_centos7环境变量配置

    linux查看全部环境变量_centos7环境变量配置一、查看环境变量 $env二、查看PATH $echo$PATH三、修改PATH 在Linux里设置环境变量的方法(exportPATH)一般来说,配置交叉编译工具链的时候需要指定编译工具的路径,此时就需要设置环境变量。例如我的mips-linux-gcc编译器在“/opt/au1200_rm/build_tools/bin”目录下,build_tools就是

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号