calendar类
java的时间类有Date类和calendar类,其中Date类官方建议不再使用(理由是不利于国际化),取而代之的就是今天要讲的Calendar类
Calendar类概述
Calendar类存在于util工具包中,使用时import导入:
import java.util.Calendar
以下是calendar类的类型声明:
public abstract class Calendar extends Object implements serializable, cloneable, Comparable<Calendar>
Calendar类是一个抽象类(Calendar类不能直接创建实例),它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下个星期的日期)提供了一些方法;瞬间可用毫秒值来表示,它是距历元(格林威治时间1970年1月1日的00:00:00.000)的偏移量
Calendar类如果要创建实例,必须通过getinstance方法构造Calendar的子类对象
Calendar类的方法
1. getInstance()
静态方法
Calendar.getInstance();
/*该方法返回Calendar类的子类对象;为什么说『返回Calendar类的子类对象』?首先Calendar类是一个抽象类,所以不存在所谓的Calendar类的实例,其次在地球上有很多不同的时区,不同的时区就要对应不同的Calendar类的的子类(每个国家都有自己的一套日历算法,比如西方的国家的第一个星期大部分为星期日,而中国则为星期一,等等)*/
源码:
/*函数功能:根据不同国家地区构造对应的日期类,当调用geInstaance时会自动调用该方法(被封装到calendar.getInstance()方法内)
*请参说明:zone->时区,alocale->Locale类的一个声明,java.util.Locale主要用来在软件的本地化时使用,本身没有什么作用,更多的是作为一个参数辅助其它的方法完成输出的本地化
*/
private static Calendar createCalendar(TimeZone zone, Locale aLocale){
Calendar cal = null;
String caltype = aLocale.getunicodeLocaleType("ca");
if(calType == null){
//Calendar type is not specificd.
//If the specific locale is a Thai locale,
//return a BuddhistCalendar instance.
if("th".equals(aLocale.getLanguage()) && "TH".equals(aLocale.getCountry())){
cal = new BuddhistCalendar(zone, aLocale);
}else{
cal = new GregorianCalendar(zone, aLocale);
}
}else if(caltype.equals("japanese")){
cal = new JapaneseImperialCalendar(zone, aLocale);
}else if(caltype.equals("buddhist")){
cal = new Buddhiscalendarr(zone, aLocale);
}else{
//Unsupported calendar type.
//Use Greorian calendar as fallback.
cal = new gregoianCalendar(zone, aLocale);
}
return cal
}
/*函数功能:创建一个新的Calendar子类对象(封装了createCalendar)
*请参说明:没有参数,主要实现都在createCalendar里面了...
*/
public static calendar getInstance(){
Calendar cla = new createCalendar(TimeZone.getdefaultref(), Locale.getdefault(Locale.Category.FORMAT));
cal.sharedZone = truel;
return cal;
}
2. get()
成员方法
该方法接受Calendar类的YEAR、MONTH、DAY_OF_MONTH、HOUR、MINUTE、SECOND等日历字段
例子:
Calendar cal = Calendar.getInstance();//cal作为Calendar类的子类对象,对应用户所在的时区
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH)+1;//需要注意的是,MONTH默认从0开始,所以通常要加一(真是奇怪的设定!)
int day = cal.get(Calenar.DATE);
int day = cal.get(Calendar.DAY_OF_MONTH);//DATE和DAY_OF_MONTH是等价的
int day = c.get(Calendar.DAY_OF_MONTH);
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
int second = c.get(Calendar.SECOND);
long time = c.getTimeInMillis();//貌似和system.currenttimemillis()是等价的
3. getTime()
向Date类转换
Date d = c.getTime();//返回一个由c得到的Date对象
相关阅读
1.java部署 下载安装包 进入 http://tomcat.apache.org/download-80.cgi 1.1环境准备 mkdir /usr/local/tomcat cd /usr/local/
使用FastJson对JSON字符串、JSON对象及JavaBean之间的
maven依赖包: <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --><dependency><groupId>com.alibaba</groupId><a
一、反射机制概述 Java 反射机制是在运行状态中,对于任意一个类,都能够获得这个类的所有属性和方法,对于任意一个对象都能够调用它
trim()的作用是去掉字符串两端的多余的空格,注意,是两端的空格,且无论两端的空格有多少个都会去掉,当然 中间的那些空格不会被去掉,如:
1.后端创建cookieCookie cookName =newCookie("cookName", cookValue); cookName.setMaxAge(60*60*24*7);//设置cookie的最大生命