카테고리 없음

자바 Calendar 에 원하는 날짜 / 시간 정보 셋팅하기

까마귀코딩 2023. 2. 14. 16:54

import java.util.Calendar 

 

 

Calendar cal = Calendar.getInstance();

System.out.println(cal);

 

위와같이 캘린더 객체의 getInstance() 만 해도 아래와 같이 현재 날짜 정보를 가져올수 있다 !

 

 

 

java.util.GregorianCalendar[time=1514906028783,areFieldsSet=true,areAllFieldsSet=true,
lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Seoul",
offset=32400000,dstSavings=0,useDaylight=false,transitions=22,lastRule=null],
firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,
YEAR=2018,MONTH=0,WEEK_OF_YEAR=1,WEEK_OF_MONTH=1,DAY_OF_MONTH=3
,DAY_OF_YEAR=3,DAY_OF_WEEK=4,DAY_OF_WEEK_IN_MONTH=1,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,
MINUTE=13,SECOND=48,MILLISECOND=783,ZONE_OFFSET=32400000,DST_OFFSET=0]

 

key = value 조합으로 나온다 !

 

여기서 key 로 나오는 값이 우리가 Calendar 객체에서 가져올 상수값이다 !

 

아래와 같이 사용 가능하다!

 

 

 

 

Calendar.MONTH 값은 0 부터 11까지 존재하며 

각각의 값이 월을 의미한다 

 

현재 월을 구하기 위해서는 + 1 을 해야한다 ! 0월을 없으니깐 !

 

Calendar.DAY_OF_WEEK 은 요일을 의미하며 1~7까지의 값을 리턴하며 

각각은 일, 월, 화, 수, 목, 금, 토 요일을 의미합니다. 

 

 

 

이렇게 한글로 변경도 가능 !

 

 

 

 

 

 

 

이제 간단히 말고 좀더 알아봅시당 !

 

 

String starDate = "20230214164000";

 

위와같이 날짜 정보를 starDate 라는 변수에 String 형으로 입력했습니다. 

2023 년 02월 14일 16시 40분 00초를 정의한 텍스트 입니다. 

 

 

캘린더 객체를 이용하기 위해서는  ??

 

Calendar cal = Calendar.getInstance();

 

이거 사용해줍니다. 

 

위와같은상태에서 cal 정보를 확인하면 현재시간 정보가 나옵니다 !!

 

 

statDate 정보를 대입해 줍니다. 

 

각각의 Calendar 객체 상수값에 대입하는데

 

여기서 한가지 주의할점은 Calendar.MONTH 에는

== 5가 그대로 입력되면 안된다는것입니다.

 

Calendar.MONTH 값이 5일경우 이는 6월을 의미하므로 -1을 한 값을 입력해주어야 합니다. 

 

 

 

이제 cal 에는 현재날짜 정보를 대신하여 

2022년 02월 14일 04시 40분 00초 라는 값이 셋팅 되었습니다 !

 

 

확인해봅시다 !

 

 

int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH) + 1;
int date = cal.get(Calendar.DATE);
int dayOfWeek =cal.get(Calendar.DAY_OF_WEEK);

int hour =cal.get(Calendar.HOUR);
int miniute = cal.get(Calendar.MINUTE);
int second = cal.get(Calendar.SECOND);

String korDayOfWeek = "";
switch (dayOfWeek) {
	case 1:
    korDayOfWeek ="일";
    case 2:
    korDayOfWeek ="월";
    case 3:
    korDayOfWeek ="화";
    case 4:
    korDayOfWeek ="수";
    case 5:
    korDayOfWeek ="목";
    case 6:
    korDayOfWeek ="금";
    case 7:
    korDayOfWeek ="일토";
    break;
}

System.out.println(year+"."+month+"."date"("+korDayOfWeek+")"+hour+":"+minute+":"+second);

dayOfWeek 값을 별도로 입력하지 않아도 

2023년 02월 14일의 날짜정보를 조회하여 요일정보를 가져옵니다 !

 

위의 코드를 실행하면 아래와 같은 결과값을 리턴합니다.

 

2023.02.14(화) 16:40:0

 

String starDate = "20220215170000";

날짜를 내일날짜로 바꾸어 보았습니다 ^^

 

결과는 

 

2023.02.15(수) 17:00:0

입니다

 

 

만약 정확한 날짜정보를 안다면 ??? 

 

직접사용도 가능합니다.

 

 

cal.set(Calendar.Year, 2023);
cal.set(Calendar.MONTH, Calendar.FEBUARY);
cal.set(Calendar.DATE, 14);

cal.set(Calendar.HOUT, 17);
cal.set(Calendar.MINUTE, 30);
cal.set(Calendar.SECOND, 0);

 

 

처음 방식과 다르게 

Calendar.MONTH에 

Calendar.FEBUARY 라는 값을 셋팅했습니다.

 

2월이라는 상수값을 그대로 입력했기때문에 -1을 해줄필요는없습니다 !