자바 라 이브 러 리 사용: Calendar 클래스

6486 단어 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对象

좋은 웹페이지 즐겨찾기