LocalDate, LocalTime, LocalDateTime
LocalDate
Java의 LocalDate
클래스는 날짜를 표현하기 위해 사용되는 클래스입니다.
이 클래스는 Java 8 이상에서 사용 가능한 java.time
패키지의 일부입니다. LocalDate
는 시간대를 고려하지 않는 순수한 날짜(년, 월, 일)를 나타냅니다. 여기에는 시간, 분, 초 등의 시간 정보는 포함되어 있지 않습니다. java.time.LocalDate
를 import하면 사용가능합니다.
주요 특징
- 인스턴스 생성:
LocalDate
의 인스턴스는 여러 방법으로 생성할 수 있습니다. 가장 일반적인 방법은now()
,of()
,parse()
메서드를 사용하는 것입니다.LocalDate.now()
: 현재 날짜를 반환합니다.LocalDate.of(year, month, day)
: 지정된 년, 월, 일로LocalDate
인스턴스를 생성합니다.LocalDate.parse("yyyy-MM-dd")
: 문자열을 파싱하여LocalDate
인스턴스를 생성합니다.
- 날짜 조작:
LocalDate
클래스는 날짜를 조작하는 다양한 메서드를 제공합니다. 예를 들어,plusDays()
,minusWeeks()
,withMonth()
등이 있습니다. - 날짜 비교: 두
LocalDate
인스턴스를 비교하기 위한 메서드들도 제공됩니다.isBefore()
,isAfter()
,isEqual()
메서드를 사용하여 날짜를 비교할 수 있습니다. - 날짜 정보 추출:
getYear()
,getMonth()
,getDayOfMonth()
등의 메서드를 사용하여 년, 월, 일 정보를 추출할 수 있습니다. - 포매팅과 파싱:
DateTimeFormatter
를 사용하여LocalDate
객체를 원하는 형식의 문자열로 변환하거나, 문자열에서LocalDate
객체로 변환할 수 있습니다. - 불변성:
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
의 경우는 위와 다르게 시간 정보만 필요할 때 사용한다.
이 클래스는 시간대를 고려하지 않는 순수한 시간(시, 분, 초, 나노초)을 나타내며, 날짜 정보는 포함되어 있지 않습니다. 날짜 정보와 시간 정보를 함께 사용하고 싶으면 밑의 class를 사용하면 된다.
LocalTime
의 주요 특징은 다음과 같습니다:
- 인스턴스 생성:
LocalTime
의 인스턴스는 여러 방법으로 생성할 수 있습니다.LocalTime.now()
: 현재 시간(시스템 시계 기준)을 반환합니다.LocalTime.of(int hour, int minute, int second)
: 지정된 시, 분, 초로LocalTime
인스턴스를 생성합니다. 나노초를 추가로 지정할 수도 있습니다.LocalTime.parse(CharSequence text)
: 문자열을 파싱하여LocalTime
인스턴스를 생성합니다. 문자열 형식은 보통 "HH:mm:ss"입니다.
- 시간 조작:
LocalTime
클래스는 시간을 조작하는 다양한 메서드를 제공합니다.plusHours()
,plusMinutes()
,plusSeconds()
: 지정된 시간, 분, 초를 현재 시간에 더합니다.minusHours()
,minusMinutes()
,minusSeconds()
: 지정된 시간, 분, 초를 현재 시간에서 뺍니다.
- 시간 정보 추출:
getHour()
,getMinute()
,getSecond()
,getNano()
등의 메서드를 사용하여 시간, 분, 초, 나노초 정보를 추출할 수 있습니다. - 시간 비교:
isBefore()
,isAfter()
메서드를 사용하여 다른LocalTime
인스턴스와 시간을 비교할 수 있습니다. - 포매팅과 파싱:
DateTimeFormatter
를 사용하여LocalTime
객체를 원하는 형식의 문자열로 변환하거나, 문자열에서LocalTime
객체로 변환할 수 있습니다. - 불변성:
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
은 위의 두 개와 다르게 날짜 정보와 시간 정보를 동시에 활용할 수 있는 class이다.
- 인스턴스 생성:
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"입니다.
- 날짜와 시간 조작:
plusDays()
,plusHours()
,plusMinutes()
: 지정된 일, 시간, 분을 현재LocalDateTime
에 더합니다.minusDays()
,minusHours()
,minusMinutes()
: 지정된 일, 시간, 분을 현재LocalDateTime
에서 뺍니다.
- 날짜와 시간 정보 추출:
getYear()
,getMonth()
,getDayOfMonth()
: 년, 월, 일 정보를 추출합니다.getHour()
,getMinute()
,getSecond()
: 시간, 분, 초 정보를 추출합니다.
- 날짜와 시간 비교:
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) |
다른 날짜와 시간보다 이후인지 비교 |