大家好,又见面了,我是你们的朋友全栈君。
不知不觉到第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所示。
关注公众号,获取学习视频
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/129566.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...