Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java에서 날짜 객체를 만드는 3가지 방법: Date, SimpleDateFormat, LocalDate

Java 프로그래밍에서 날짜와 시간을 다루는 것은 매우 흔한 작업입니다. 이 글에서는 java.util.Date, SimpleDateFormat, LocalDate 클래스를 활용해 날짜 객체를 생성하는 대표적인 세 가지 방법을 예제 코드와 함께 소개합니다.


Date 클래스 사용하기

java.util.Date 패키지의 Date() 생성자를 호출하면 현재 시각을 나타내는 Date 객체를 만들 수 있습니다. 이 생성자로 생성된 객체는 실행 시점의 현재 날짜와 시간을 그대로 담고 있습니다.

예제 코드

import java.util.Date;
public class CreateDate {
    public static void main(String args[]) {      
        Date date = new Date();
        System.out.print(date);
    }
}

실행 결과

Thu Nov 02 15:43:01 IST 2018

SimpleDateFormat 클래스 사용하기

java.text.SimpleDateFormat 클래스의 parse() 메서드를 사용하면 지정한 형식의 날짜 문자열을 해석하여 해당 날짜를 나타내는 Date 객체로 변환할 수 있습니다. 문자열로 입력된 날짜 데이터를 다룰 때 유용합니다.

예제 코드

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Test {
    public static void main(String args[]) throws ParseException {  
        String date_string = "26-09-1989";
        // SimpleDateFormat 클래스 인스턴스 생성
        SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");        
        // 주어진 문자열을 Date 객체로 파싱
        Date date = formatter.parse(date_string);         
        System.out.println("Date value: "+date);
    }
}

실행 결과

Date value: Tue Sep 26 00:00:00 IST 1989

LocalDate 클래스 사용하기

java.time.LocalDate는 Java 8부터 도입된 java.time API의 일부로, 시간대(time zone) 정보 없이 날짜만 표현한다는 점이 기존 Date 클래스와 다릅니다. 날짜 정보만 필요하다면 Date 대신 이 클래스를 사용하는 것이 좋습니다. LocalDate 클래스의 주요 메서드는 다음과 같습니다.

  • now(): 현재 날짜를 나타내는 LocalDate 객체를 반환합니다.
  • of(): 연도, 월, 일 값을 매개변수로 받아 해당 날짜의 LocalDate 객체를 반환합니다.
  • parse(): 'yyyy-MM-dd' 형식의 날짜 문자열을 매개변수로 받아 지정된 날짜의 LocalDate 객체를 반환합니다.

예제 코드

import java.time.LocalDate;
public class Test {
    public static void main(String args[]) {  
        LocalDate date1 = LocalDate.of(2014, 9, 11);
        System.out.println(date1);
        LocalDate date2 = LocalDate.parse("2007-12-03");
        System.out.println(date2);
        LocalDate date3 = LocalDate.now();
        System.out.println(date3);
    }
}

실행 결과

2014-09-11
2007-12-03
2020-11-05

마무리

정리하면, 현재 시각이 필요하면 Date() 생성자나 LocalDate.now()를, 특정 형식의 날짜 문자열을 변환하려면 SimpleDateFormat.parse()를, 시간대 없이 순수한 날짜 정보가 필요하면 LocalDate를 사용하는 것이 좋습니다. 특히 신규 프로젝트에서는 스레드 세이프하고 직관적인 java.time API(LocalDate 등) 사용을 권장합니다.