LocalDate, LocalTime, LocalDateTime

LocalDate, LocalTime, LocalDateTime

LocalDate

LocalDate (Java Platform SE 8 )
Java의 LocalDate 클래스는 날짜를 표현하기 위해 사용되는 클래스입니다.

이 클래스는 Java 8 이상에서 사용 가능한 java.time 패키지의 일부입니다. LocalDate는 시간대를 고려하지 않는 순수한 날짜(년, 월, 일)를 나타냅니다. 여기에는 시간, 분, 초 등의 시간 정보는 포함되어 있지 않습니다. java.time.LocalDate를 import하면 사용가능합니다.

주요 특징

  1. 인스턴스 생성: LocalDate의 인스턴스는 여러 방법으로 생성할 수 있습니다. 가장 일반적인 방법은 now(), of(), parse() 메서드를 사용하는 것입니다.
    • LocalDate.now(): 현재 날짜를 반환합니다.
    • LocalDate.of(year, month, day): 지정된 년, 월, 일로 LocalDate 인스턴스를 생성합니다.
    • LocalDate.parse("yyyy-MM-dd"): 문자열을 파싱하여 LocalDate 인스턴스를 생성합니다.
  2. 날짜 조작: LocalDate 클래스는 날짜를 조작하는 다양한 메서드를 제공합니다. 예를 들어, plusDays(), minusWeeks(), withMonth() 등이 있습니다.
  3. 날짜 비교: 두 LocalDate 인스턴스를 비교하기 위한 메서드들도 제공됩니다. isBefore(), isAfter(), isEqual() 메서드를 사용하여 날짜를 비교할 수 있습니다.
  4. 날짜 정보 추출: getYear(), getMonth(), getDayOfMonth() 등의 메서드를 사용하여 년, 월, 일 정보를 추출할 수 있습니다.
  5. 포매팅과 파싱: DateTimeFormatter를 사용하여 LocalDate 객체를 원하는 형식의 문자열로 변환하거나, 문자열에서 LocalDate 객체로 변환할 수 있습니다.
  6. 불변성: LocalDate 인스턴스는 불변 객체입니다. 이는 한 번 생성된 후에는 그 상태를 변경할 수 없다는 것을 의미합니다. 날짜를 조작하는 모든 메서드는 수정된 새로운 인스턴스를 반환합니다.

Methods

메서드 설명
now() 현재 날짜를 반환
of(int year, int month, int dayOfMonth) 주어진 년, 월, 일로 LocalDate 객체 생성
parse(CharSequence text) 문자열을 파싱하여 LocalDate 객체 생성
plusDays(long daysToAdd) 지정된 일 수를 더한 날짜 반환
minusDays(long daysToSubtract) 지정된 일 수를 뺀 날짜 반환
getYear() 년도 반환
getMonthValue() 월을 숫자로 반환
getDayOfMonth() 일 반환
isBefore(LocalDate other) 다른 날짜보다 이전인지 비교
isAfter(LocalDate other) 다른 날짜보다 이후인지 비교
isEqual(LocalDate other) 다른 날짜와 같은지 비교

LocalDate는 날짜 관련 작업을 수행할 때 유용하며, 시간대를 고려하지 않기 때문에 날짜만 필요한 많은 애플리케이션에 적합합니다.

LocalTime

LocalTime (Java Platform SE 8 )
LocalTime의 경우는 위와 다르게 시간 정보만 필요할 때 사용한다.

이 클래스는 시간대를 고려하지 않는 순수한 시간(시, 분, 초, 나노초)을 나타내며, 날짜 정보는 포함되어 있지 않습니다. 날짜 정보와 시간 정보를 함께 사용하고 싶으면 밑의 class를 사용하면 된다.

LocalTime의 주요 특징은 다음과 같습니다:

  1. 인스턴스 생성: LocalTime의 인스턴스는 여러 방법으로 생성할 수 있습니다.
    • LocalTime.now(): 현재 시간(시스템 시계 기준)을 반환합니다.
    • LocalTime.of(int hour, int minute, int second): 지정된 시, 분, 초로 LocalTime 인스턴스를 생성합니다. 나노초를 추가로 지정할 수도 있습니다.
    • LocalTime.parse(CharSequence text): 문자열을 파싱하여 LocalTime 인스턴스를 생성합니다. 문자열 형식은 보통 "HH:mm:ss"입니다.
  2. 시간 조작: LocalTime 클래스는 시간을 조작하는 다양한 메서드를 제공합니다.
    • plusHours(), plusMinutes(), plusSeconds(): 지정된 시간, 분, 초를 현재 시간에 더합니다.
    • minusHours(), minusMinutes(), minusSeconds(): 지정된 시간, 분, 초를 현재 시간에서 뺍니다.
  3. 시간 정보 추출: getHour(), getMinute(), getSecond(), getNano() 등의 메서드를 사용하여 시간, 분, 초, 나노초 정보를 추출할 수 있습니다.
  4. 시간 비교: isBefore(), isAfter() 메서드를 사용하여 다른 LocalTime 인스턴스와 시간을 비교할 수 있습니다.
  5. 포매팅과 파싱: DateTimeFormatter를 사용하여 LocalTime 객체를 원하는 형식의 문자열로 변환하거나, 문자열에서 LocalTime 객체로 변환할 수 있습니다.
  6. 불변성: LocalTime 인스턴스는 불변 객체입니다. 이는 한 번 생성된 후에는 그 상태를 변경할 수 없다는 것을 의미합니다. 시간을 조작하는 모든 메서드는 수정된 새로운 인스턴스를 반환합니다.

LocalTime은 순수한 시간 정보가 필요할 때 유용하게 사용됩니다. 예를 들어, 특정한 시간대를 고려하지 않고 시간만 다루는 애플리케이션에서 매우 유용합니다.

methods

메서드 설명
now() 현재 시간을 반환
of(int hour, int minute, int second) 주어진 시, 분, 초로 LocalTime 객체 생성
parse(CharSequence text) 문자열을 파싱하여 LocalTime 객체 생성
plusHours(long hoursToAdd) 지정된 시간을 더한 시간 반환
minusHours(long hoursToSubtract) 지정된 시간을 뺀 시간 반환
getHour() 시간 반환
getMinute() 분 반환
getSecond() 초 반환
isBefore(LocalTime other) 다른 시간보다 이전인지 비교
isAfter(LocalTime other) 다른 시간보다 이후인지 비교

LocalDateTime

LocalDateTime (Java Platform SE 8 )
LocalDateTime 은 위의 두 개와 다르게 날짜 정보와 시간 정보를 동시에 활용할 수 있는 class이다.
  1. 인스턴스 생성:
    • LocalDateTime.now(): 현재 날짜와 시간을 반환합니다.
    • LocalDateTime.of(int year, int month, int dayOfMonth, int hour, int minute): 주어진 년, 월, 일, 시, 분으로 LocalDateTime 인스턴스를 생성합니다. 초와 나노초를 추가로 지정할 수도 있습니다.
    • LocalDateTime.parse(CharSequence text): 문자열을 파싱하여 LocalDateTime 인스턴스를 생성합니다. 문자열 형식은 일반적으로 "yyyy-MM-ddTHH:mm:ss"입니다.
  2. 날짜와 시간 조작:
    • plusDays(), plusHours(), plusMinutes(): 지정된 일, 시간, 분을 현재 LocalDateTime에 더합니다.
    • minusDays(), minusHours(), minusMinutes(): 지정된 일, 시간, 분을 현재 LocalDateTime에서 뺍니다.
  3. 날짜와 시간 정보 추출:
    • getYear(), getMonth(), getDayOfMonth(): 년, 월, 일 정보를 추출합니다.
    • getHour(), getMinute(), getSecond(): 시간, 분, 초 정보를 추출합니다.
  4. 날짜와 시간 비교:
    • isBefore(), isAfter(): 다른 LocalDateTime 인스턴스와 날짜 및 시간을 비교합니다.
메서드 설명
now() 현재 날짜와 시간을 반환
of(int year, int month, int dayOfMonth, int hour, int minute) 주어진 년, 월, 일, 시, 분으로 LocalDateTime 객체 생성
parse(CharSequence text) 문자열을 파싱하여 LocalDateTime 객체 생성
plusDays(long daysToAdd) 지정된 일 수를 더한 날짜와 시간 반환
minusDays(long daysToSubtract) 지정된 일 수를 뺀 날짜와 시간 반환
getYear() 년도 반환
getMonthValue() 월을 숫자로 반환
getDayOfMonth() 일 반환
getHour() 시간 반환
getMinute() 분 반환
isBefore(LocalDateTime other) 다른 날짜와 시간보다 이전인지 비교
isAfter(LocalDateTime other) 다른 날짜와 시간보다 이후인지 비교