개발이야기/Java

[Java] 날짜 포맷 변환하고 활용하기 사용법, 예제 (SimpleDateFormat, Date)

후린개발자 2023. 8. 9.
반응형

아래 소스 코드는 날짜와 시간을 다양한 형식으로 포맷하고 조작하고 있습니다.

 

소스코드

상수

 

LONG_DATE_STR, LONG_DATE_STR_FILE, SHORT_DATE_STR, MIN_SHORT_DATE_STR : 날짜 포맷을 정의하는 상수들입니다.
DEFAULT_DATETIME_FORMAT, DEFAULT_DATETIME_FORMAT_FILE, MIN_DATE_FORMAT, DEFAULT_DATE_FORMAT, DEFAULT_SHORT_DATE_FORMAT : SimpleDateFormat 객체를 사용하여 각각의 날짜 포맷을 처리하기 위한 상수들입니다.
MILLI_SEC_A_DAY : 하루를 밀리초로 나타낸 상수입니다.

 

메서드

 

getCurrentDatetime(): 현재 날짜와 시간을 기본 포맷으로 가져오는 메서드입니다.
getCurrentDatetimeFile(): 현재 날짜와 시간을 파일명 용도의 포맷으로 가져오는 메서드입니다.
getCurrentDate(): 현재 날짜를 기본 날짜 포맷으로 가져오는 메서드입니다.
getCurrentDate2(): 현재 날짜를 짧은 날짜 포맷으로 가져오는 메서드입니다.
getCurrentDateYYYY(): 현재 연도만 가져오는 메서드입니다.
getCurrentDate(int i): 현재 날짜로부터 지정한 일 수 이후의 날짜를 기본 날짜 포맷으로 가져오는 메서드입니다.
getCurrentDate(String format): 사용자 정의 포맷으로 현재 날짜를 가져오는 메서드입니다.

 

 

메서드 호출을 통해 결과를 확인하시고 응용해서 사용하시면 됩니다.

 

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

public class TT {
    
    public static final String LONG_DATE_STR = "yyyy-MM-dd HH:mm:ss";
    public static final String LONG_DATE_STR_FILE = "yyyyMMddHHmmss";
    public static final String SHORT_DATE_STR = "yyyy-MM-dd";
    public static final String MIN_SHORT_DATE_STR = "yyyyMMdd";
    
    public static final SimpleDateFormat DEFAULT_DATETIME_FORMAT = new SimpleDateFormat(LONG_DATE_STR);
    public static final SimpleDateFormat DEFAULT_DATETIME_FORMAT_FILE = new SimpleDateFormat(LONG_DATE_STR_FILE);
    public static final SimpleDateFormat MIN_DATE_FORMAT = new SimpleDateFormat("yyyyMMdd");
    public static final SimpleDateFormat DEFAULT_DATE_FORMAT = new SimpleDateFormat(SHORT_DATE_STR);
    public static final SimpleDateFormat DEFAULT_SHORT_DATE_FORMAT = new SimpleDateFormat(MIN_SHORT_DATE_STR);
    public static final int MILLI_SEC_A_DAY = 1000 * 60 * 60 * 24;
    
    public static String getCurrentDatetime() {
        return DEFAULT_DATETIME_FORMAT.format(new Date());
    }

    public static String getCurrentDatetimeFile() {
        return DEFAULT_DATETIME_FORMAT_FILE.format(new Date());
    }
    
    public static String getCurrentDate() {
        return DEFAULT_DATE_FORMAT.format(new Date());
    }
    public static String getCurrentDate2() {
        return DEFAULT_SHORT_DATE_FORMAT.format(new Date());
    }

    public static String getCurrentDateYYYY() {
        return DEFAULT_DATE_FORMAT.format(new Date()).substring(0, 4);
    }

    public static String getCurrentDate(int i) {
        long now = System.currentTimeMillis();
        now += (i * MILLI_SEC_A_DAY);
        return DEFAULT_DATE_FORMAT.format(new Date(now));
    }

    public static String getCurrentDate(String format) {
        SimpleDateFormat dateFormat = new SimpleDateFormat(format);
        long now = System.currentTimeMillis();
        return dateFormat.format(new Date(now));
    }
    
    public static void main(String[] args) throws Exception { 
        // 현재 날짜와 시간을 기본 포맷으로 가져오기
        String currentDatetime = TT.getCurrentDatetime();
        System.out.println("Current Datetime: " + currentDatetime);
        
        // 현재 날짜와 시간을 파일명용 포맷으로 가져오기
        String currentDatetimeFile = TT.getCurrentDatetimeFile();
        System.out.println("Current Datetime (File): " + currentDatetimeFile);
        
        // 현재 날짜를 기본 날짜 포맷으로 가져오기
        String currentDate = TT.getCurrentDate();
        System.out.println("Current Date: " + currentDate);
        
        // 현재 날짜를 짧은 날짜 포맷으로 가져오기
        String currentDate2 = TT.getCurrentDate2();
        System.out.println("Current Short Date: " + currentDate2);
        
        // 현재 연도만 가져오기
        String currentYear = TT.getCurrentDateYYYY();
        System.out.println("Current Year: " + currentYear);
        
        // 현재 날짜로부터 지정한 일 수 이후의 날짜 가져오기
        int daysToAdd = 5;
        String futureDate = TT.getCurrentDate(daysToAdd);
        System.out.println("Future Date (+" + daysToAdd + " days): " + futureDate);
        
        // 사용자 정의 포맷으로 현재 날짜 가져오기
        String customFormat = "yyyy/MM/dd";
        String customFormattedDate = TT.getCurrentDate(customFormat);
        System.out.println("Custom Formatted Date: " + customFormattedDate);
    }
}

 

소스코드 실행화면

 

반응형

댓글

💲 추천 글