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

Java에서 현재 날짜를 구하는 4가지 방법 총정리

Java에서는 다양한 방법으로 현재 날짜를 가져올 수 있습니다. 이 글에서는 가장 많이 사용되는 네 가지 방법을 예제 코드와 함께 소개합니다.

1. Date 클래스의 생성자 활용

java.util.Date 클래스의 인자 없는 생성자는 현재 날짜와 시간을 나타내는 Date 객체를 반환합니다. 이 객체를 SimpleDateFormat과 함께 사용하면 원하는 형식으로 현재 날짜를 출력할 수 있습니다.

예제

import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Date;

public class Demo {
    public static void main(String args[]) throws ParseException {
        Date date = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yy");
        String str = formatter.format(date);
        System.out.print("현재 날짜: " + str);
    }
}

실행 결과

05/11/20

2. LocalDate 클래스의 now() 메서드

Java 8부터 도입된 java.time.LocalDate 클래스의 now() 메서드는 현재 날짜를 나타내는 객체를 반환합니다. 별도의 포맷 지정 없이도 ISO-8601 표준 형식(yyyy-MM-dd)으로 출력되므로 코드가 간결하다는 장점이 있습니다.

예제

import java.time.LocalDate;

public class CreateDate {
    public static void main(String args[]) {
        LocalDate date = LocalDate.now();
        System.out.println("현재 날짜: " + date);
    }
}

실행 결과

현재 날짜: 2020-11-05

3. Calendar 클래스의 getInstance() 메서드

java.util.Calendar 클래스의 인자 없는 getInstance() 메서드는 현재 날짜와 시간 정보를 담은 Calendar 객체를 반환합니다. getTime() 메서드로 Date 객체로 변환한 뒤 포맷팅하여 사용할 수 있습니다.

예제

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Calendar;

public class Test {
    public static void main(String[] args) throws ParseException {
        DateFormat formatter = new SimpleDateFormat("dd/MM/yy");
        Calendar obj = Calendar.getInstance();
        String str = formatter.format(obj.getTime());
        System.out.println("현재 날짜: " + str);
    }
}

실행 결과

현재 날짜: 05/11/20

4. java.sql.Date 클래스

java.sql.Date 클래스의 생성자 중 하나는 날짜를 나타내는 long 값을 받아 Date 객체를 생성합니다. 따라서 System.currentTimeMillis() 메서드(현재 에포크 시간을 밀리초 단위로 반환)의 결과값을 생성자에 전달하면 현재 날짜 객체를 만들 수 있습니다.

예제

public class CreateDate {
    public static void main(String[] args) {
        java.sql.Date date = new java.sql.Date(System.currentTimeMillis());
        System.out.println("현재 날짜: " + date);
    }
}

실행 결과

현재 날짜: 2020-11-05

어떤 방법을 선택해야 할까?

레거시 코드 유지보수라면 java.util.Date나 Calendar를 사용할 수밖에 없지만, Java 8 이상 환경이라면 스레드 세이프하고 직관적인 LocalDate.now() 사용이 권장됩니다. 데이터베이스 연동이 필요한 경우에는 java.sql.Date가 적합합니다. 상황에 맞는 방법을 선택해 활용해 보세요.