介绍
今天就跟大家聊聊有关一文教你如何在Java中使用日历类,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
<强> Java日历类的使用总结强>
在实际项目当中,我们经常会涉及到对时间的处理,例如登陆网站,我们会看到网站首页显示XXX,欢迎您!今天是XXXX年....某些网站会记录下用户登陆的时间,比如银行的一些网站,对于这些经常需要处理的问题,Java中提供了日历这个专门用于对日期进行操作的类,那么这个类有什么特殊的地方呢,首先我们来看日历的声明
公共抽象类日历Objectimplements可序列化的延伸,可克隆,Comparable
该类被抽象所修饰,说明不能通过新的方式来获得实例,对此,日历提供了一个类方法getInstance,以获得此类型的一个通用的对象,getInstance方法返回一个日历对象(该对象为日历的子类对象),其日历字段已由当前日期和时间初始化:
日历即时=Calendar.getInstance ();
为什么说返回的是日历的子类对象呢,因为每个国家地区都有自己的一套日历算法,比如西方国家的第一个星期大部分为星期日,而中国则为星期一,我们来看看getInstance方法获取实例的源码
/* * *有日历使用默认时区和语言环境。的 * & lt; code> Calendar</code>返回总部>私有静态日历createCalendar(时区区, 地区aLocale) { 日历卡尔=零; 字符串caltype=aLocale.getUnicodeLocaleType (“ca"); 如果(caltype==null) {//日历类型没有指定。//如果指定的地区是泰国语言环境,//返回一个BuddhistCalendar实例。 如果“th" .equals (aLocale.getLanguage ()) ,,(“TH" .equals (aLocale.getCountry ()))) { 卡尔=new BuddhistCalendar(区,aLocale); 其他}{ 卡尔=new GregorianCalendar(区,aLocale); } }else if (caltype.equals (“japanese")) { 卡尔=new JapaneseImperialCalendar(区,aLocale); }else if (caltype.equals (“buddhist")) { 卡尔=new BuddhistCalendar(区,aLocale); 其他}{//日历不支持的类型。//使用公历作为后备。 卡尔=new GregorianCalendar(区,aLocale); } 返回加州; }
为了更加便捷的对日期进行操作,日历类对年,月,DAY_OF_MONTH、小时等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间1970年1月1日的00:00:00.000,格里高利历)的偏移量。
下面看看日历常用的方法
包com.test.calendar; 进口java.util.Calendar; 进口org.junit.Before; 进口org.junit.Test; 公开课CalendarDemo { 日历日历=零; @Before 公共空白测试(){ 日历=Calendar.getInstance (); }//基本用法,获取年月日时分秒星期 @Test 公共空间test1 () {//获取年 int年=calendar.get (Calendar.YEAR);//获取月,这里需要需要月份的范围为0 ~ 11日,因此获取月份的时候需要+ 1才是当前月份值 int月=calendar.get (Calendar.MONTH) + 1;//获取日 int天=calendar.get (Calendar.DAY_OF_MONTH);//获取时 int小时=calendar.get (Calendar.HOUR);//int小时=calendar.get (Calendar.HOUR_OF_DAY);//24小时表示//获取分 int分钟=calendar.get (Calendar.MINUTE);//获取秒 int二=calendar.get (Calendar.SECOND);//星期,英语国家星期从星期日开始计算 int工作日=calendar.get (Calendar.DAY_OF_WEEK); System.out.println(“现在是“+年+“年”;+月+“月”;+天+“日”;+小时 +“时”;+分钟+“分”;+第二+“秒”;+“星期”;+工作日); }//一年后的今天 @Test 公共空间test2 () {//同理换成下个月的今天calendar.add(日历。月,1); calendar.add(日历。年,1);//获取年 int年=calendar.get (Calendar.YEAR);//获取月 int月=calendar.get (Calendar.MONTH) + 1;//获取日 int天=calendar.get (Calendar.DAY_OF_MONTH); System.out.println(“一年后的今天:“+年+“年”;+月+“月”;+天+“日“); }//获取任意一个月的最后一天 @Test 公共空间test3 () {//假设求6月的最后一天 int currentMonth=6;//先求出7月份的第一天,实际中这里6为外部传递进来的currentMonth变量//1 calendar.set (calendar.get (Calendar.YEAR)、currentMonth 1); calendar.add(日历。目前为止,1);//获取日 int天=calendar.get (Calendar.DAY_OF_MONTH); System.out.println(“6月份的最后一天为“+天+“号”); }//设置日期 @Test 公共空间test4 () { calendar.set(日历。年,2000); System.out.println(“现在是“+ calendar.get (Calendar.YEAR) +“年“); 日历。设置(2008、8、8);//获取年 int年=calendar.get (Calendar.YEAR);//获取月 int月=calendar.get (Calendar.MONTH);//获取日 int天=calendar.get (Calendar.DAY_OF_MONTH); System.out.println(“现在是“+年+“年”;+月+“月”;+天+“日“); } }一文教你如何在Java中使用日历类