자바 Calendar 에 원하는 날짜 / 시간 정보 셋팅하기
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 라는 값을 셋팅했습니다.