Java Date, Calendar, SimpleDateFormat 시간 구하기





결과

결과





코드

public static void main(String[] args) {
		Date date = new Date();
		System.out.println("시간 확인 : " + date.toString());
		
		SimpleDateFormat sf = new SimpleDateFormat("yy-MM-dd, hh:mm:ss, E요일, 올해D일째");
		System.out.println("시간 확인(포맷팅) : " + sf.format(date) + "\n");
		
		Calendar cal = Calendar.getInstance();
		int year = cal.get(Calendar.YEAR);		// 년도
		int month = cal.get(Calendar.MONTH) + 1;	// 월 0~11
		int day = cal.get(Calendar.DAY_OF_MONTH);	// 일
		int yoil = cal.get(Calendar.DAY_OF_WEEK);	// 요일
		int hour = cal.get(Calendar.HOUR_OF_DAY);	// 시 0~23
		int min = cal.get(Calendar.MINUTE);	// 분
		int sec = cal.get(Calendar.SECOND);	// 초
		String[] yo = {"일", "월", "화", "수", "목", "금", "토"};
		// Calendar.SUNDAY : 1 ~ Calendar.SATURDAY : 7
		
		System.out.println("Cal 얻은 값 : " + year + "년" + month + "월" + day + "일 " +
		yo[yoil-1] + "요일 " + hour + "시" + min + "분" + sec + "초");
	}





Date : 날짜 표현 클래스

- 생성자가 여러개 있지만 대부분 비권장(Deprecated) 되어 사용 않는다.


- Date()를 생성하면 컴퓨터의 현재 날짜를 읽어 Date 객체를 생성한다.


- toString() 메소드를 사용하면 날짜를 문자열로 얻을 수 있다.


- 문자열을 특정한 포맷으로 얻고자 한다면 SimpleDateFormat을 사용한다.





SimpleDateFormat : 날짜 포맷 클래스

- 특정 포맷 문자열로 Date 객체의 날짜와 시간을 얻고자할 때 사용한다.


- 문자열 포맷은 SimpleDateFormat 객체를 생성할 때 생성자에서 지정해주며 포맷 기호들을 사용하여서 작성한다.


문자

설명

문자

설명

y

년도

M

d

D

올해 기준 일

H

시(0~23)

h

시(1~12)

k

시(1~24)

K

시(0~11)

m

s

E

요일

a

오전 / 오후

W

이번달 몇 번째 주

w

올해 몇 번째 주





Calendar : 이름처럼 달력을 표현하는 클래스

- 지역이나 나라마다 날짜를 계산하는 방법이 다르므로 Calendar는 인스턴스를 생성할 수 없도록 추상 클래스로되어 있다.


- Calendar cal = Calendar.getInstance(); 로 한다면 현재 OS의 설정된 시간을 갖는 객체를 얻을 수 있다.


- Calendar.MONTH 는 리턴값이 0~11로서 0부터 시작하므로 결과의 1을 더해주어야 원하는 값을 얻을 수 있다.


- Calendar.DAY_OF_WEEK는 요일을 얻을 수 있으며 리턴형은 int이다. 

값을 확인해보면 Calendar.SUNDAY : 1 ~ Calendar.SATURDAY : 7 이다.

따라서 위 코드에서는 요일을 갖는 문자열 배열을 만들어 간단하게 표현하였다.


- Calendar.HOUR = 0~11 이며 Calendar.HOUR_OF_DAY = 0~23 이므로 HOUR을 사용하고자 한다면 따로 AM/PM을 표시해주어야 한다.







+ Recent posts