selfstarter

Java Calendar 쓸 때 유의 사항 본문

Server/Java

Java Calendar 쓸 때 유의 사항

selfstarter 2020. 6. 25. 20:52

Java Calendar 쓸 때 유의 사항

java Calendar를 쓸 때 date의 날짜를 Calendar에 넣어서 쓰려고 하는 경우 문제가 발생한다.

Calenar의 month는 0부터 시작해서 그런지 date의 날짜를 그대로 넣으면

다음달로 출력된다.

예를들어 Date가 6월이면 0부터 시작하는 Calendar는 6이니까 7월로 인식하는 듯 하다

버그가 꽤 잘 나올 것 같다..

public class TestMain {
	public static void main(String[] args) {
		long now = System.currentTimeMillis();
        final Date date = new Date(now);
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat();
		Calendar mCal = Calendar.getInstance();
		
        final SimpleDateFormat yearFormat = new SimpleDateFormat("yyyy", Locale.KOREA);
        final SimpleDateFormat monthFormat = new SimpleDateFormat("MM", Locale.KOREA);
        final SimpleDateFormat dayFormat = new SimpleDateFormat("dd", Locale.KOREA);
        
		mCal.set(Integer.parseInt(yearFormat.format(date))
				, Integer.parseInt(monthFormat.format(date))
				, Integer.parseInt(dayFormat.format(date)));
		
		
		System.out.println(simpleDateFormat.format(date));
		System.out.println(mCal.getTime().toString()); // 다음달이 나옴

	}
}

 또 요일을 확인할 때 Calendar.get(Calendar.DAY_OF_WEEK);

DAY_OF_WEEK를 사용한다. 이 때 return값은 다음과 같이

상수로 선언되어있다.일요일부터 시작이라서 이것 역시 헷갈린다...

Calendar.SUNDAY 1
Calendar.MONDAY 2
Calendar.TUESDAY 3
Calendar.WEDNESDAY 4
Calendar.THURSDAY 5
Calendar.FRIDAY 6
Calendar.SATURDAY 7
Comments