[Java] 현재 날짜, 시간 구하기 (LocalDate, LocalTime, LocalDateTime)

Hayoung Park·2022년 1월 26일
0

Java

목록 보기
1/2

[java.time] 날짜, 시간 표현

Java 8 이후부터는 java.time 패키지의 클래스들을 이용하여 날짜와 시간을 표현할 수 있다.
Java 8 이전은 java.util.Date, java.util.Calendar 클래스를 이용할 수 있지만 대부분 deprecated 되었다. 가능하면 사용하지 않는 것이 좋다.


1. java.time.LocalDate

  • 날짜를 표현하는 클래스
    • now() : 시스템의 default 타임존을 기준으로 현재의 날짜를 표현하는 새로운 객체를 생성하여 반환
    • of() : 전달된 인수를 가지고 특정 날짜를 표현하는 새로운 객체를 생성하여 반환
// 현재 날짜 구하기 (시스템 시계, 시스템 타임존)
LocalDate today = LocalDate.now();

// 특정 날짜 구하기
// static LocalDate of(int year, int month, int dayOfMonth)
LocalDate xMas = LocalDate.of(2022, 12, 25);

System.out.println(today); // 2022-01-21
System.out.println(xMas); // 2022-12-25

- LocalDate 객체에 접근하기(getter)

  • Calender : 월은 1월이 0 (0~11), 요일은 일요일부터 1
  • LocalDate : 월은 1월이 1 (1~12), 요일은 월요일부터 1



2. java.time.LocalTime

  • 시간을 표현하는 클래스
    • now() : 시스템의 default 타임존을 기준으로 현재의 시간을 표현하는 새로운 객체를 생성하여 반환
    • of() : 전달된 인수를 가지고 특정 시간을 표현하는 새로운 객체를 생성하여 반환
// 현재 시간 구하기 (시스템 시계, 시스템 타임존)
LocalTime present = LocalTime.now();

// 특정 시간 구하기
// static LocalTime of(int hour, int minute, int second, int nanoOfSecond)
LocalTime xMasTime = LocalTime.of(02, 02, 00, 100000000);

System.out.println(present); // 09:21:50.634
System.out.println(xMas); // 02:02:00.100

- LocalTime 객체에 접근하기(getter)



3. java.time.LocalDateTime

  • 날짜와 시간을 표현하는 클래스
  • now() : 시스템의 default 타임존을 기준으로 현재의 날짜와 시간을 표현하는 새로운 객체를 생성하여 반환
  • of() : 전달된 인수를 가지고 특정 날짜와 시간을 표현하는 새로운 객체를 생성하여 반환
// 현재 날짜, 시간 구하기 (시스템 시계, 시스템 타임존)
LocalDateTime now = LocalDateTime.now();

// 특정 시간 구하기
// static LocalDateTime of(int year, int month, int dayOfMonth, int hour, int minute, int second, int nanoOfSecond)
LocalDateTime xMas = LocalDateTime.of(2022, 12, 25, 01, 10, 03, 100000000);

System.out.println(now); // 2022-01-21T04:54:57.501
System.out.println(xMas); // 2022-12-25T01:10:03.100



4. TemporalField 인터페이스

  • 월(month-of-year)과 시(hour-of-day)와 같이 날짜와 시간과 관련된 필드를 정의해 놓은 인터페이스
  • ChronoField : TemporalField 인터페이스를 구현하는 열거체
LocalTime present = LocalTime.now();
String ampm;

if(present.get(ChronoField.AMPM_OF_DAY) == 0) {
  ampm = "오전";
} else {
  ampm = "오후";
}

System.out.println("지금은 " + ampm + " " + present.get(ChronoField.HOUR_OF_AMPM) + "시입니다."); // 지금은 오전 9시입니다.

profile
Faithfulness makes all things possible!

0개의 댓글