Calendar 클래스는 SingleTone 패턴으로 설계된 클래스로, 객체를 만들어 사용할 수 없다. 객체를 만들어 사용할 수 없는 SingleTone 패턴 설계 클래스는 클래스 내부에 자신으로 만든 객체를 포함하고 있어서 클래스 내부에 가지고 있는 자신의 객체를 얻어오는 메소드를 실행해 자신의 객체를 얻어와서 사용한다.
Calendar calendar = new Calendar(); => new 를 사용해서 객체를 생성할 수 없어서 에러가 발생된다.
+ 싱글톤 패턴(SingleTone Pattern) : 대표적으로 Calendar 객체나 dataSource 객체처럼 객체가 하나만 생성되어야 하는 경우, 전체 코드에서 하나의 객체만 존재할 수 있도록 이미 생성된 객체가 있으면 그 객체를 사용하도록 하는 방식이다.
Calendar calendar = Calendar.getInstance();
System.out.println(calendar);
- 출력 :
java.util.GregorianCalendar[time=1579507954124,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="GMT+09:00",offset=32400000,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2020,MONTH=0,WEEK_OF_YEAR=4,WEEK_OF_MONTH=4,DAY_OF_MONTH=20,DAY_OF_YEAR=20,DAY_OF_WEEK=2,DAY_OF_WEEK_IN_MONTH=3,AM_PM=1,HOUR=5,HOUR_OF_DAY=17,MINUTE=12,SECOND=34,MILLISECOND=124,ZONE_OFFSET=32400000,DST_OFFSET=0]
위에 출력한 값에서 볼 수 있듯이 Calendar 클래스 객체는 날짜 및 시간 정보 이외에도 많은 정보를 가지고 있기 때문에, SimpleDateFormat 클래스 객체를 이용해 서식을 지정하려면 getTime() 메소드로 날짜 및 시간 정보만 얻어와서 처리해야 한다.
getTime() : Calendar 클래스 객체에서 날짜 및 시간 정보만 얻어온다.
System.out.println(calendar.getTime()); // Mon Jan 20 17:16:24 GMT+09:00 2020
System.out.println("년 : " + calendar.get(Calendar.YEAR)); // 상수는 대문자로, 년 : 2020
System.out.println("월 : " + (calendar.get(Calendar.MONTH) + 1)); // 월은 + 1, 월 : 1
System.out.println("일 : " + calendar.get(Calendar.DATE)); // 일 : 20 (1년기준)
System.out.println("일 : " + calendar.get(Calendar.DAY_OF_MONTH)); // 일 : 20 (한달기준)
System.out.println("요일 : " + calendar.get(Calendar.DAY_OF_WEEK)); // 일요일 => 1, 월요일 => 2, ..., 토요일 => 7
System.out.println("시(12시각) : " + calendar.get(Calendar.HOUR)); //시(12시각) : 5
System.out.println("시(24시각) : " + calendar.get(Calendar.HOUR_OF_DAY));//시(24시각) : 17
System.out.println("분 : " + calendar.get(Calendar.MINUTE)); // 분 : 16
System.out.println("초 : " + calendar.get(Calendar.SECOND)); // 초 : 24
System.out.println("밀리초 : " + calendar.get(Calendar.MILLISECOND)); // 밀리초 : 515
'Java' 카테고리의 다른 글
자바/JAVA/Thread/스레드 (0) | 2020.01.29 |
---|---|
JAVA/자바/SimpleDateFormat/substring/charAt (0) | 2020.01.20 |
JAVA/자바/날짜&시간 출력/SimpleDateFormat (0) | 2020.01.20 |
JAVA/자료형/자바의기본자료형과 String (0) | 2020.01.17 |
JAVA/자바의 출력 (0) | 2020.01.17 |