안녕하세요. 제임스 입니다. 


이번에는 자바 Calendar 클래스를 이용하여 오늘 날짜, 요일 및 시간을 구하는 방법에 대해 알아 보겠습니다. 



import java.util.Calendar;
Calendar cal = Calendar.getInstance();
System.out.println(cal);

위와 같이 Calendar 객체의 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 객체에서 가져올 상수 값입니다. 

즉, 아래와 같이 사용 가능합니다. 


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 minute = cal.get(Calendar.MINUTE);
int second = cal.get(Calendar.SECOND);

Calender.MONTH 값은 0 ~ 11 까지 존재 하며 각각의 값이 1월 부터 12월을 의미 합니다. 즉, 현재 월을 구하기 위해서는 해당 값에 +1 을 해야 합니다. 


Calendar.DAY_OF_WEEK 는 요일을 의미하며 1 ~ 7 까지의 값을 리턴하며 각각은 일, 월 ~ 금, 토 요일을 의미 합니다. 

이는 아래와 같이 한글 요일값으로 변경 가능합니다. 물론 영문 요일값으로 변경하셔도 됩니다. 

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


위 코드를 아래와 같이 프린트 해보겠습니다. 

System.out.println("년도: "+year+"\n월: "+month+"\n일: "+
date+"\n요일: "+dayOfWeek+"("+korDayOfWeek+")"+
"\n시간 : "+hour+"\n분: "+minute+"\n초: "+second);

년도: 2018

월: 1

일: 3

요일: 4(수)

시간 : 0

분: 13

초: 48


이를 일반적인 시간 표현 방식으로 변경해보겠습니다. 

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

2018.1.3(수) 0:13:48



자바 Calendar 객체를 이용하여 현재 날짜, 요일 및 시간 구하는 방법을 간단히 알아 봤습니다. 

아래는 전체 코드 입니다. 


Calendar cal = Calendar.getInstance();
System.out.println(cal);

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 minute = cal.get(Calendar.MINUTE);
int second = cal.get(Calendar.SECOND);

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

System.out.println("년도: "+year+"\n월: "+month+"\n일: "+
date+"\n요일: "+dayOfWeek+"("+korDayOfWeek+")"+
"\n시간 : "+hour+"\n분: "+minute+"\n초: "+second);

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



Calendar 객체에 대해서는 아래 API 링크 참조 하시면 좀더 많은 정보를 접하실수 있습니다. 

https://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html




 도움이 되셨다면 로그인이 필요 없는 

▼ 하트 클릭 한번 부탁 드립니다 

감사합니다 :D

 


블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,