JAVA/기본API 클래스 알아보기

시간 처리 Date, Calendar1

별초롱언니 2025. 5. 13. 17:55

JAVA에서는 시간에 대해 처리를 할 수 있도록 몇 가지 클래스를 제공합니다. JAVA에서 시간을 다루는 자료형의 값은 long이며 java.util.Calendar 클래스와 java.util.Date 클래스가 있습니다. 

 

1. System.currentTimeMills()

System 클래스의 System.currentTimeMills() 메서드는 현재 운영체제의 시각을 long 타임으로 반환합니다. 

반환하는 시각은 1970년 1월 1일 기준으로 했을 때 현재까지의 시간이며 1/1000초 단위까지 환산해서 보여줍니다. 

package chapter10;

public class exam68 {

	public static void main(String[] args) {
		long start = System.currentTimeMillis();
		System.out.println("시작시간 : " + start);
		int a = 0;
		for (int i = 0; i < 10000000; i++) {
			a++;
		}
		long end = System.currentTimeMillis();
		System.out.println("종료시간 : " + end);
		System.out.println("걸린 작업 시간 : " + (end-start));
	}

}

 

2. java.util.Calendar

JAVA에서는 날짜를 다루기 위한 Calendar 클래스를 제공합니다. 다만 Calendar는 추상클래스 이기 때문에 직접 인스턴스를 생성하지는 못하고 getInstance() 메서드를 통해서 GregorianCalendar 인스턴스를 생성해야 합니다. 이 방법을 싱글턴 패턴이라고 합니다. 싱글턴 패턴은 객체를 사용할 때 각각 인스턴스를 생성해서 사용하는 것이 아니라 하나의 인스턴스만을 가지로 사용하는 방법입니다. Calendar 클래스는 싱글턴으로 만들어진 대표적인 클래스입니다. 싱글턴 패턴을 사용하지 않는 방법으로는 직접 GregorianCalendar 인스턴스를 생성하는 방법이 있습니다. 

package chapter10;

import java.util.Calendar;
import java.util.GregorianCalendar;

public class exam69 {

	public static void main(String[] args) {
		Calendar a = Calendar.getInstance();
		Calendar b = new GregorianCalendar();
		System.out.println(a.toString());
		System.out.println(b.toString());
	}

}

싱글턴 패턴

특정클래스 한개만 유지 (객체생성) 하고싶다 → 싱글턴

1. 해당 클래스의 생성자를 private로 막아서 객체 생성을 막음

2. 스스로 객체를 static으로 생성한다

3. getInstance 함수를 만들어 생성된 객체를 반환

 

get() 메서드로 정보 가져오기 

Calendar 클래스에서 데이터를 얻어오려면 get() 메서드를 사용합니다. get() 메서드의 반환타입은 int이며 한 가지 주의할 점은 월(MONTH) 반환시 실제 월보다 1이 작은 값이 반환됩니다. 또한 반환타입이 int이므로 요일을 반환할 때도 정수의 형태로 반환하는데 일요일이 시작인 1이고 월요일이 2, 그리고 토요일이 7입니다. 

package chapter10;

import java.util.Calendar;

public class exam70 {

	public static void main(String[] args) {
		Calendar a = Calendar.getInstance();
		
		int year = a.get(Calendar.YEAR);
		int month = a.get(Calendar.MONTH);
		int date = a.get(Calendar.DATE);
		
		System.out.println(year + "년 " + month + "월 " + date + "일");
		System.out.println(a.get(Calendar.DAY_OF_WEEK));
		// 1=일요일 2=월요일 ... 7=토요일
		System.out.print("이번 년도에서 오늘이 몇 일째인가? : ");
		System.out.println(a.get(Calendar.DAY_OF_YEAR));
		// 이번 년도의 며칠 인지
		System.out.print("이번 달은 며칠까지 있는가? : ");
		System.out.println(a.getActualMaximum(Calendar.DATE));
	}

}

 

set() 으로 날짜 지정하기 

set() 메서드는 Calendar 인스턴스의 값을 변경할 때 사용합니다. 두 개의 파라미터를 필요로하며 첫 번째 파라미터는 바꿔야 할 항목, 두 번째 파라미터는 바꿀 값을 대입합니다. 

'JAVA > 기본API 클래스 알아보기' 카테고리의 다른 글

Wrapper  (0) 2025.05.15
Scanner  (0) 2025.05.15
random  (0) 2025.05.15
시간 처리 Date, Calendar2  (0) 2025.05.15
문자열 클래스  (0) 2025.05.13