必威体育Betway必威体育官网
当前位置:首页 > IT技术

使用Java类库:Calendar类

时间:2019-08-08 02:45:23来源:IT技术作者:seo实验室小编阅读:57次「手机版」
 

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对象

相关阅读

小幺鸡+java部署

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 反射机制

一、反射机制概述 Java 反射机制是在运行状态中,对于任意一个类,都能够获得这个类的所有属性和方法,对于任意一个对象都能够调用它

java中trim()方法的用法详解

trim()的作用是去掉字符串两端的多余的空格,注意,是两端的空格,且无论两端的空格有多少个都会去掉,当然 中间的那些空格不会被去掉,如:

java中session和cookie的创建与销毁

1.后端创建cookieCookie cookName =newCookie("cookName", cookValue); cookName.setMaxAge(60*60*24*7);//设置cookie的最大生命

分享到:

栏目导航

推荐阅读

热门阅读