반응형

오늘 날짜나 현재 시간 등을 시스템 날짜 기준으로 가져오는 경우가 필요로 하다. 그래서, 이번 글에서는 오늘 날짜와 시간, 시스템 날짜를 기준으로 값을 가져오는 방법에 기록한다. 다만, Java 8 버전 미만일 경우에 대해 기록한다. 이 방법은 Java 8버전 이상일 경우에서도 사용할 수는 있다.


목차

1. 라이브러리 Import
2. Date 사용 방법
3. SimpleDateFormat을 이용한 데이터 가져오는 방법

1. 라이브러리 Import

오늘 날짜나 시간 등을 가져올 때 사용하는 라이브러리는 아래와 같다.

- import java.util.Date

- import java.util.Calendar;

import java.util.Date;
import java.util.Calendar;

 

2. Date 사용 방법

Date의 사용방법은 정말 간단하다. 1번에서의 라이브러리를 import한 다음에 아래와 같이 선언한다. 위에서 Calendar 라이브러리를 import하는 이유는 이제는 Date 라이브러리를 더이상 지원을 하지 않아서 Calendar 라이브러리를 사용해야 제대로 된 값을 가져올 수 있다.

 

즉, 아래의 예시를 보자

import java.util.Date;

public class Main {
	public static void main(String[] args) throws IOException {
		
        Date date = new Date();
        
        System.out.println(date.getYear()); // 123 출력
	}
}

 

위의 코드를 실행하면, 123을 출력한다. 이게 date.getYear를 보면, 1900년대로 세팅이 되어 있어 현재 년도에서 1900을 뺸 값이 나온다.

 

위의 코드에서 출력하는 부분을 아래로 바꿔보자.

System.out.println(date.getYear() + 1900);

 

이렇게 바꾸면 2023이라는 값을 출력하게 된다.

그래서, 우리는 Calendar라는 라이브러리를 같이 사용하여 이 귀찮음을 없애려고 한다.(사실 귀찮으면 JDK 버전을 올리면 되겠지만 그럴 환경이 아니라서 이것을 써야 한다.)

 

Date와 Calendar의 사용 방법은 아래와 같다.

Date date = new Date();
Calendar c = Calendar.getInstance(); // Calendar 인스턴스 생성

c.setTime(date); // 날짜 세팅

int year = c.get(c.YEAR);
int month = c.get(c.MONTH) + 1;
int day = c.get(c.DATE);
		
System.out.println(year); // 2023
System.out.println(month); // 5
System.out.println(day); // 22

 

Calendar 인스턴스에 Date 객체의 date를 넣어 날짜 세팅을 한 다음에, c라는 객체에서 값을 가져오면 된다. 여기서 주의 할 점은 MONTH를 가져올 때는 1을 더하여 가져와야 한다. 

 

 

그레고리력과 율리우스 력에 따라 1월이 0으로 표현된다고 하는데, 그냥 1을 더해서 가져오면 된다.

 

3. SimpleDateFormat을 이용한 데이터 가져오는 방법

2번보다 더 편하게 날짜 형식에 맞게 데이터를 가져오는 방법도 있다. 바로 SimpleDateFormat을 사용하여 형식에 맞게 데이터를 가져오는 방법이다.

 

1) 라이브러리 import

- import java.text.SimpleDateFormat;

import java.text.SimpleDateFormat;

 

위의 라이브러리를 import를 하면 된다.

 

2) 사용 방법

사용 방법은 먼저 3-1번에서 라이브러리를 import하고, 객체를 선언한다.

SimpleDateFormat dateForamt = new SimpleDateFormat("yyyyMMdd");

 

그리고 나서, 이 포맷을 적용시킬 date 객체를 넣어 주고 String형으로 리턴한다.

String test = dateFormat(date);

 

그러면 위의 dateFormat에 대한 형식은 "yyyyMMdd" 형식이기 때문에 현재날짜를 이 형식에 맞게 가져온다.

 

3) 전체 소스

package test;

import java.io.IOException;
import java.util.Calendar;
import java.util.Date;
import java.text.SimpleDateFormat;

public class Main {
	public static void main(String[] args) throws IOException {
		
		Date date = new Date();
		SimpleDateFormat  sdf = new SimpleDateFormat("yyyyMMdd");
		
		String a = sdf.format(date);
		System.out.println(a);
	}
}

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기