一文教你如何在Java中使用日历类

  介绍

今天就跟大家聊聊有关一文教你如何在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中使用日历类