JAVA 현재 날짜 시간 취득 Java8 LocalDateTime 사용 방법

ava에서 현재 날짜 또는 현재 시간을 취득하는 방법에 대해 알아보겠습니다.

이번 내용에서는 Java8에서 취득하는 방법으로 LocalDate, LocalTime, LocalDateTime를 사용하겠습니다.

그리고 포맷은 java.time.format.DateTimeFormatter 클래스를 사용하여 출력하도록 하겠습니다.

  • LocalDate – 현재 날짜 취득.
  • LocalTime – 현재 시간 취득.
  • LocalDateTime – 현재 날짜와 시간 취득.

 

Java8 이전 버전에서 현재 날짜 또는 시간을 취득하고 포맷을 변경하는 방법은 아래 내용을 참조해 주세요.

 

 

LocalDate

날짜를 취득할 수 있는 클래스로 LocalDate가 있습니다.

샘플을 보면서 사용 방법을 확인해 보겠습니다.

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class CurrentDateTime {
    public static void main(String[] args) {
 
        // 현재 날짜 구하기 
        LocalDate nowdate = LocalDate.now();

        System.out.println(nowdate);
        
        // 포맷 지정
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy년 MM월 dd일");
 
        // 포맷 적용
        String formatedNow = nowdate.format(formatter);
        System.out.println(formatedNow);
 
    }
}

 

결과

2022-12-21
2022년 12월 21일

 

LocalDate.now()를 사용해 현재 날짜를 취득해 옵니다.

현재 날짜는 시스템에 지정된 시간과 타임존을 사용해 취득해 옵니다.

첫 번째 출력된 결과는 LocalDate.now()를 사용해 취득해온 날짜를 포맷 변경 없이 출력한 결과입니다.

두 번째 출력된 결과는 LocalDate.now()를 사용해 취득해온 날짜를 DateTimeFormatter를 사용해 원하는 포맷으로 변경해 출력한 결과입니다.

LocalDate.now()를 사용해 취득한 날짜는 LocalDate에 준비되어 있는 메서드를 사용해 년월일을 따로 취득할 수도 있습니다.

또는 요일 및 일수도 취득할 수 있습니다.

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class CurrentDateTime {
    public static void main(String[] args) {
 
        // 현재 날짜 구하기 
        LocalDate nowdate = LocalDate.now();
        
        // 연도, 월(문자열, 숫자), 일, 일(year 기준), 요일(문자열, 숫자)
        int year = nowdate.getYear();                           // 연도 취득
        String month = nowdate.getMonth().toString();           // 월 취득
        int monthValue = nowdate.getMonthValue();               // 월 취득(숫자)
        int dayOfMonth = nowdate.getDayOfMonth();               // 일 취득
        int dayOfYear = nowdate.getDayOfYear();                 // 일수 취득
        String dayOfWeek = nowdate.getDayOfWeek().toString();   // 요일 취득
        int dayOfWeekValue = nowdate.getDayOfWeek().getValue(); // 요일 취득(숫자)
 
        // 결과
        System.out.println("현재 날짜 : " + nowdate);
        System.out.println("연도 취득 : " + year); 
        System.out.println("월 취득 : " + month ); 
        System.out.println("월 취득(숫자) : " + monthValue); 
        System.out.println("일 취득 : " + dayOfMonth); 
        System.out.println("일수 취득 : " + dayOfYear); 
        System.out.println("요일 취득 : " + dayOfWeek );
        System.out.println("요일 취득(숫자) : " + dayOfWeekValue);
    }
}

 

결과

현재 날짜 : 2022-12-21
연도 취득 : 2022
월 취득 : DECEMBER
월 취득(숫자) : 12
일 취득 : 21
일수 취득 : 355
요일 취득 : WEDNESDAY
요일 취득(숫자) : 3

 

메서드를 사용해 여러 형태로 취득이 가능합니다.

메서드의 종류와 내용은 다음과 같습니다.

메서드내용
getYear()연도 취득.
getMonth()월 취득. toString() 사용해 문자열로 출력 가능.
getMonthValue()월 취득. 숫자로 반환.
getDayOfMonth()일 취득.
getDayOfYear()년의 몇번째 일인지 취득.
dayOfWeek()월요일(1) ~ 일요일(7) 숫자값 요일 취득. toString() 사용해 문자열로 출력 가능.

 

LocalTime

시간을 취득할 수 있는 LocalTime 클래스를 알아보겠습니다.

import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
 
public class CurrentDateTime {
    public static void main(String[] args) {
 
        // 현재 시간
        LocalTime nowtime = LocalTime.now();
 
        System.out.println(nowtime); 
 
        // 포맷 지정
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH시 mm분 ss초");
 
        // 포맷 적용
        String formatedtime = nowtime.format(formatter);
 
        System.out.println(formatedtime);
 
    }
}

 

결과

05:54:51.966378427
05시 54분 51초

 

현재 시간은 시스템에 지정된 시간과 타임존을 사용해 취득해 옵니다.

첫 번째 출력된 결과는 LocalTime.now()를 사용해 취득해온 시간을 포맷 변경 없이 출력한 결과입니다.

두 번째 출력된 결과는 LocalTime.now()를 사용해 취득해온 시간을 DateTimeFormatter를 사용해 원하는 포맷으로 변경해 출력한 결과입니다.

LocalTime에 준비되어 있는 메서드를 사용해 시분초를 각각 취득할 수 있습니다.

import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
 
public class CurrentDateTime {
    public static void main(String[] args) {
 
        // 현재 시간
        LocalTime nowtime = LocalTime.now();
 
        // 시 분 초 취득
        int hour = nowtime.getHour();
        int minute = nowtime.getMinute();
        int second = nowtime.getSecond();
 
        // 결과
        System.out.println(nowtime); 
        System.out.println("시간 취득 : " +  hour); 
        System.out.println("분 취득 : " + minute); 
        System.out.println("초 취득 : " + second);
 
    }
}

 

결과

05:57:28.717065267
시간 취득 : 5
분 취득 : 57
초 취득 : 28

 

메서드를 사용해 여러 형태로 취득 가능합니다.

메서드의 종류와 내용은 다음과 같습니다.

메서드내용
getHour()시간을 취득.
getMinute()분을 취득.
getSecond()초를 취득.

 

LocalDateTime

현재 날짜와 시간을 동시에 취득할 수 있는 클래스인 LocalDateTime을 살펴보겠습니다.

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
 
public class CurrentDateTime {
    public static void main(String[] args) {
 
        // 현재 날짜와 시간 취득
        LocalDateTime nowdatetime = LocalDateTime.now();
 
        System.out.println(nowdatetime);
 
        // 포맷 지정
        String formatednowtime = nowdatetime.format(DateTimeFormatter.ofPattern("yyyy년 MM월 dd일 HH시 mm분 ss초"));
 
        // 포맷 적용
        System.out.println(formatednowtime); 
 
    }
}

 

결과

2022-12-21T06:00:22.920034701
2022년 12월 21일 06시 00분 22초

 

현재 날짜와 시간은 시스템에 지정된 시간과 타임존을 사용해 취득해 옵니다.

첫 번째 출력된 결과는 LocalDateTime.now()를 사용해 취득해온 날짜와 시간을 포맷 변경 없이 출력한 결과입니다.

두 번째 출력된 결과는 LocalDateTime.now()를 사용해 취득해온 날짜와 시간을 DateTimeFormatter를 사용해 원하는 포맷으로 변경해 출력한 결과입니다.

LocalDateTime에서는 LocalDate와 LocalTime에서 사용가능한 메서드를 통해 여러 형태로 값을 취득할 수 있습니다.

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
 
public class CurrentDateTime {
    public static void main(String[] args) {
 
        // 현재 날짜와 시간 취득
        LocalDateTime nowdatetime = LocalDateTime.now();
 
        System.out.println(nowdatetime); 
 
        // 연도, 월(문자열, 숫자), 일, 일(year 기준), 요일(문자열, 숫자)
        int year = nowdatetime.getYear();                           // 연도 취득
        String month = nowdatetime.getMonth().toString();           // 월 취득
        int monthValue = nowdatetime.getMonthValue();               // 월 취득(숫자)
        int dayOfMonth = nowdatetime.getDayOfMonth();               // 일 취득
        int dayOfYear = nowdatetime.getDayOfYear();                 // 일수 취득
        String dayOfWeek = nowdatetime.getDayOfWeek().toString();   // 요일 취득
        int dayOfWeekValue = nowdatetime.getDayOfWeek().getValue(); // 요일 취득(숫자)
 
        // 결과
        System.out.println("현재 날짜 : " + nowdatetime);
        System.out.println("연도 취득 : " + year); 
        System.out.println("월 취득 : " + month ); 
        System.out.println("월 취득(숫자) : " + monthValue); 
        System.out.println("일 취득 : " + dayOfMonth); 
        System.out.println("일수 취득 : " + dayOfYear); 
        System.out.println("요일 취득 : " + dayOfWeek );
        System.out.println("요일 취득(숫자) : " + dayOfWeekValue);
        
        // 시 분 초 취득
        int hour = nowdatetime.getHour();
        int minute = nowdatetime.getMinute();
        int second = nowdatetime.getSecond();
 
        // 결과
        System.out.println(nowdatetime); 
        System.out.println("시간 취득 : " + hour); 
        System.out.println("분 취득 : " + minute); 
        System.out.println("초 취득 : " + second);
 
    }
}

 

결과

2022-12-21T06:06:04.537197801
현재 날짜 : 2022-12-21T06:06:04.537197801
연도 취득 : 2022
월 취득 : DECEMBER
월 취득(숫자) : 12
일 취득 : 21
일수 취득 : 355
요일 취득 : WEDNESDAY
요일 취득(숫자) : 3
2022-12-21T06:06:04.537197801
시간 취득 : 6
분 취득 : 6
초 취득 : 4

 

LocalDate, LocalTime, LocalDateTime 클래스를 사용해 Java8 이후에서 현재 날짜와 시간을 취득하는 방법을 알아봤습니다.

댓글