-
Notifications
You must be signed in to change notification settings - Fork 0
LocalDateTime
java.time.LocalDateTime 클래스는 날짜와 시간을 함께 표현하는 불변 클래스입니다.
이 페이지에서는 java-time-extensions 라이브러리에서 어떻게 확장 프로퍼티, 확장 함수, 중위 함수를 사용할 수 있는지 설명합니다.
LocalDateTIme 인스턴스를 생성하는 방법은 다음과 같습니다:
Long.toLocalDateTime()String.toLocalDateTime()String.toLocalDateTimeOrNull()String.toLocalDateTime(String)String.toLocalDateTimeOrNull(String)String.toLocalDateTime(DateTimeFormatter)String.toLocalDateTimeOrNull(DateTimeFormatter)
Long을 LocalDateTime으로 변환하려면 toLocalDateTime() 확장 함수를 사용하십시오.
import io.github.harryjhin.java.time.extension.toLocalDateTime
import java.time.LocalDateTime
val dateTime: LocalDateTime = System.currentTimeMillis().toLocalDateTime()Long 값은 반드시 Unix Epoch Time(1970-01-01T00:00:00Z) 이후의 시간(밀리초 단위)을 나타내야 합니다.
String을 LocalDateTime으로 변환하려면 toLocalDateTime() 확장 함수를 사용하십시오.
import io.github.harryjhin.java.time.extension.toLocalDateTime
import java.time.LocalDateTime
val dateTime: LocalDateTime = "2024-01-01T12:00:00".toLocalDateTime()String 값은 반드시 yyyy-MM-dd'T'HH:mm:ss 형식을 따라야 합니다. 그렇지 않으면 DateTimeParseException이 발생합니다.
예외를 던지는 대신 null을 반환하려면
toLocalDateTimeOrNull() 확장 함수를 사용하십시오.
String을 LocalDateTime으로 변환하면서
예외가 발생할 경우 null을 반환하려면 toLocalDateTimeOrNull() 확장 함수를 사용하십시오.
import io.github.harryjhin.java.time.extension.toLocalDateTimeOrNull
import java.time.LocalDateTime
val dateTime: LocalDateTime? = "2024-01-01-01".toLocalDateTimeOrNull() // null만약 String이 일반적인 yyyy-MM-dd'T'HH:mm:ss 형식이 아니라면 null을 반환합니다.
null을 반환하는 대신 형식을 지정하려면
toLocalDateTime(String) 확장 함수를 사용하십시오.
String을 지정한 패턴을 사용하여 LocalDateTime으로 변환하려면 toLocalDateTime(String) 확장 함수를 사용하십시오.
import io.github.harryjhin.java.time.extension.toLocalDateTime
import java.time.LocalDateTime
val dateTime: LocalDateTime = "24/01/01 12:00:00".toLocalDateTime("yy/MM/dd HH:mm:ss")String 값이 지정한 형식과 일치하지 않는 경우 DateTimeParseException이 발생합니다.
예외를 던지는 대신 null을 반환하려면
toLocalDateTimeOrNull(String) 확장 함수를 사용하십시오.
String을 지정한 패턴을 사용하여 LocalDateTime으로 변환하면서
예외가 발생할 경우 null을 반환하려면 toLocalDateTimeOrNull(String) 확장 함수를 사용하십시오.
import io.github.harryjhin.java.time.extension.toLocalDateTimeOrNull
import java.time.LocalDateTime
val dateTime: LocalDateTime? = "24/01/01 12:00:00".toLocalDateTimeOrNull("yy/MM/dd HH:mm:ss")String 값이 지정한 형식과 일치하지 않는 경우 null을 반환합니다.
형식을 지정할 때 String 대신 DateTimeFormatter를 사용하려면
toLocalDateTime(DateTimeFormatter) 확장 함수를 사용하십시오.
String을 DateTimeFormatter를 사용하여 LocalDateTime으로 변환하려면 toLocalDateTime(DateTimeFormatter) 확장 함수를 사용하십시오.
import io.github.harryjhin.java.time.extension.toLocalDateTime
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
val formatter: DateTimeFormatter = DateTimeFormatter.ofPattern("yy/MM/dd HH:mm:ss")
val dateTime: LocalDateTime = "24/01/01 12:00:00".toLocalDateTime(formatter)String 값이 지정한 형식이 아니라면 DateTimeParseException이 발생합니다.
예외를 던지는 대신 null을 반환하려면 toLocalDateTimeOrNull(DateTimeFormatter)
확장 함수를 사용하십시오.
String을 DateTimeFormatter를 사용하여 LocalDateTime으로 변환하면서
예외가 발생할 경우 null을 반환하려면 toLocalDateTimeOrNull(DateTimeFormatter) 확장 함수를 사용하십시오.
import io.github.harryjhin.java.time.extension.toLocalDateTimeOrNull
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
val formatter: DateTimeFormatter = DateTimeFormatter.ofPattern("yy/MM/dd HH:mm:ss")
val dateTime: LocalDateTime? = "24/01/01 12:00:00".toLocalDateTimeOrNull(formatter)LocalDateTime 인스턴스는 날짜와 시간 정보를 포함하고 있습니다. 따라서 날짜는 Period, 시간은 Duration으로 변환할 수 있습니다.
지원하는 확장 프로퍼티는 다음과 같습니다:
LocalDateTime.years: PeriodLocalDateTime.months: PeriodLocalDateTime.days: PeriodLocalDateTime.hours: DurationLocalDateTime.minutes: DurationLocalDateTime.seconds: DurationLocalDateTime.milliseconds: DurationLocalDateTime.microseconds: DurationLocalDateTime.nanoseconds: Duration
LocalDateTime 인스턴스에서 연도 값을 가져오려면 years 확장 프로퍼티를 사용하십시오.
import io.github.harryjhin.java.time.extension.toLocalDateTime
import io.github.harryjhin.java.time.extension.years
import java.time.LocalDateTime
import java.time.Period
val dateTime: LocalDateTime = "2024-01-01T12:00:00".toLocalDateTime()
val period: Period = dateTime.years // P2024YLocalDateTime 인스턴스에서 월 값을 가져오려면 months 확장 프로퍼티를 사용하십시오.
import io.github.harryjhin.java.time.extension.toLocalDateTime
import io.github.harryjhin.java.time.extension.months
import java.time.LocalDateTime
import java.time.Period
val dateTime: LocalDateTime = "2024-01-01T12:00:00".toLocalDateTime()
val period: Period = dateTime.months // P1MLocalDateTime 인스턴스에서 일 값을 가져오려면 days 확장 프로퍼티를 사용하십시오.
import io.github.harryjhin.java.time.extension.toLocalDateTime
import io.github.harryjhin.java.time.extension.days
import java.time.LocalDateTime
import java.time.Period
val dateTime: LocalDateTime = "2024-01-01T12:00:00".toLocalDateTime()
val period: Period = dateTime.days // P1DLocalDateTime 인스턴스에서 시간 값을 가져오려면 hours 확장 프로퍼티를 사용하십시오.
import io.github.harryjhin.java.time.extension.toLocalDateTime
import io.github.harryjhin.java.time.extension.hours
import java.time.LocalDateTime
import java.time.Duration
val dateTime: LocalDateTime = "2024-01-01T12:00:00".toLocalDateTime()
val duration: Duration = dateTime.hours // PT12HLocalDateTime 인스턴스에서 분 값을 가져오려면 minutes 확장 프로퍼티를 사용하십시오.
import io.github.harryjhin.java.time.extension.toLocalDateTime
import io.github.harryjhin.java.time.extension.minutes
import java.time.LocalDateTime
import java.time.Duration
val dateTime: LocalDateTime = "2024-01-01T12:34:56".toLocalDateTime()
val duration: Duration = dateTime.minutes // PT34MLocalDateTime 인스턴스에서 초 값을 가져오려면 seconds 확장 프로퍼티를 사용하십시오.
import io.github.harryjhin.java.time.extension.toLocalDateTime
import io.github.harryjhin.java.time.extension.seconds
import java.time.LocalDateTime
import java.time.Duration
val dateTime: LocalDateTime = "2024-01-01T12:34:56".toLocalDateTime()
val duration: Duration = dateTime.seconds // PT56SLocalDateTime 인스턴스에서 나노초 값을 밀리초 단위까지 가져오려면 milliseconds 확장 프로퍼티를 사용하십시오.
import io.github.harryjhin.java.time.extension.toLocalDateTime
import io.github.harryjhin.java.time.extension.milliseconds
import java.time.LocalDateTime
import java.time.Duration
val dateTime: LocalDateTime = "2024-01-01T12:34:56.123456789".toLocalDateTime("yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSS")
val duration: Duration = dateTime.milliseconds // PT0.123SLocalDateTime 인스턴스에서 나노초 값을 마이크로초 단위까지 가져오려면 microseconds 확장 프로퍼티를 사용하십시오.
import io.github.harryjhin.java.time.extension.toLocalDateTime
import io.github.harryjhin.java.time.extension.microseconds
import java.time.LocalDateTime
import java.time.Duration
val dateTime: LocalDateTime = "2024-01-01T12:34:56.123456789".toLocalDateTime("yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSS")
val duration: Duration = dateTime.microseconds // PT0.123456SLocalDateTime 인스턴스에서 나노초 값을 나노초 단위까지 가져오려면 nanoseconds 확장 프로퍼티를 사용하십시오.
import io.github.harryjhin.java.time.extension.toLocalDateTime
import io.github.harryjhin.java.time.extension.nanoseconds
import java.time.LocalDateTime
import java.time.Duration
val dateTime: LocalDateTime = "2024-01-01T12:34:56.123456789".toLocalDateTime("yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSS")
val duration: Duration = dateTime.nanoseconds // PT0.123456789SLocalDateTime 인스턴스에서 지원하는 연산은 다음과 같습니다:
LocalDateTime 인스턴스에 Period를 더하려면 plus(+) 연산자를 사용하십시오.
import io.github.harryjhin.java.time.extension.toLocalDateTime
import io.github.harryjhin.java.time.extension.days
import java.time.LocalDateTime
var dateTime: LocalDateTime = "2024-01-01T12:00:00".toLocalDateTime()
dateTime += 1.days // 2024-01-02T12:00:00LocalDateTime 인스턴스에서 Period를 빼려면 minus(-) 연산자를 사용하십시오.
import io.github.harryjhin.java.time.extension.toLocalDateTime
import io.github.harryjhin.java.time.extension.hours
import java.time.LocalDateTime
var dateTime: LocalDateTime = "2024-01-02T12:00:00".toLocalDateTime()
dateTime -= 1.hours // 2024-01-02T11:00:00LocalDateTime 인스턴스에서 다른 java.time 클래스로 변환합니다.
지원하는 타입은 다음과 같습니다:
LocalDateTime.toYear(): YearLocalDateTime.toMonth(): MonthLocalDateTime.toYearMonth(): YearMonthLocalDateTime.toMonthDay(): MonthDayLocalDateTime.toDayOfWeek(): DayOfWeek
LocalDateTime 인스턴스에서 연도 값만 가져와서 Year 인스턴스로 변환하려면 toYear() 확장 함수를 사용하십시오.
import io.github.harryjhin.java.time.extension.toLocalDateTime
import io.github.harryjhin.java.time.extension.toYear
import java.time.LocalDateTime
import java.time.Year
val dateTime: LocalDateTime = "2024-01-01T12:00:00".toLocalDateTime()
val year: Year = dateTime.toYear() // 2024LocalDateTime 인스턴스에서 월 값만 가져와서 Month 인스턴스로 변환하려면 toMonth() 확장 함수를 사용하십시오.
import io.github.harryjhin.java.time.extension.toLocalDateTime
import io.github.harryjhin.java.time.extension.toMonth
import java.time.LocalDateTime
import java.time.Month
val dateTime: LocalDateTime = "2024-01-01T12:00:00".toLocalDateTime()
val month: Month = dateTime.toMonth() // JANUARYLocalDateTime 인스턴스에서 연도와 월 값을 가져와서 YearMonth 인스턴스로 변환하려면 toYearMonth() 확장 함수를 사용하십시오.
import io.github.harryjhin.java.time.extension.toLocalDateTime
import io.github.harryjhin.java.time.extension.toYearMonth
import java.time.LocalDateTime
import java.time.YearMonth
val dateTime: LocalDateTime = "2024-01-01T12:00:00".toLocalDateTime()
val yearMonth: YearMonth = dateTime.toYearMonth() // 2024-01LocalDateTime 인스턴스에서 월과 일 값을 가져와서 MonthDay 인스턴스로 변환하려면 toMonthDay() 확장 함수를 사용하십시오.
import io.github.harryjhin.java.time.extension.toLocalDateTime
import io.github.harryjhin.java.time.extension.toMonthDay
import java.time.LocalDateTime
import java.time.MonthDay
val dateTime: LocalDateTime = "2024-01-01T12:00:00".toLocalDateTime()
val monthDay: MonthDay = dateTime.toMonthDay() // --01-01LocalDateTime 인스턴스에서 요일 값을 가져와서 DayOfWeek 인스턴스로 변환하려면 toDayOfWeek() 확장 함수를 사용하십시오.
import io.github.harryjhin.java.time.extension.toLocalDateTime
import io.github.harryjhin.java.time.extension.toDayOfWeek
import java.time.LocalDateTime
import java.time.DayOfWeek
val dateTime: LocalDateTime = "2024-01-01T12:00:00".toLocalDateTime()
val dayOfWeek: DayOfWeek = dateTime.toDayOfWeek() // TUESDAYLocalDateTime 인스턴스에서 지원하는 중위 함수는 다음과 같습니다:
LocalDateTime.at(ZoneOffset): OffsetDateTimeLocalDateTime.at(ZoneId): ZonedDateTimeLocalDateTime.at(String): ZonedDateTimeLocalDateTime.between(LocalDateTime): Duration
LocalDateTime와 ZoneOffset을 결합하여 OffsetDateTime로 변환하려면 at 중위 함수를 사용하십시오.
import io.github.harryjhin.java.time.extension.at
import io.github.harryjhin.java.time.extension.toLocalDateTime
import java.time.LocalDateTime
import java.time.OffsetDateTime
import java.time.ZoneOffset
val dateTime: LocalDateTime = "2024-01-01T12:00:00".toLocalDateTime()
val zoneOffset: ZoneOffset = ZoneOffset.ofHours(9)
val offsetDateTime: OffsetDateTime = dateTime at zoneOffset // 2024-01-01T12:00+09:00LocalDateTime와 ZoneId를 결합하여 ZonedDateTime로 변환하려면 at 중위 함수를 사용하십시오.
import io.github.harryjhin.java.time.extension.at
import io.github.harryjhin.java.time.extension.toLocalDateTime
import java.time.LocalDateTime
import java.time.ZoneId
import java.time.ZonedDateTime
val dateTime: LocalDateTime = "2024-01-01T12:00:00".toLocalDateTime()
val zonedDateTime: ZonedDateTime = dateTime at ZoneId.of("Asia/Seoul") // 2024-01-01T12:00+09:00[Asia/Seoul]LocalDateTime와 String(zoneId 문자열)을 결합하여 ZonedDateTime로 변환하려면 at 중위 함수를 사용하십시오.
import io.github.harryjhin.java.time.extension.at
import io.github.harryjhin.java.time.extension.toLocalDateTime
import java.time.LocalDateTime
import java.time.ZonedDateTime
val dateTime: LocalDateTime = "2024-01-01T12:00:00".toLocalDateTime()
val zonedDateTime: ZonedDateTime = dateTime at "Asia/Seoul" // 2024-01-01T12:00+09:00[Asia/Seoul]두 LocalDateTime 인스턴스 사이의 차이를 Duration으로 계산하려면 between 중위 함수를 사용하십시오.
import io.github.harryjhin.java.time.extension.between
import io.github.harryjhin.java.time.extension.toLocalDateTime
import java.time.LocalDateTime
import java.time.Duration
val startDateTIme: LocalDateTime = "2024-01-01T12:00:00".toLocalDateTime()
val endDateTIme: LocalDateTime = "2024-01-02T13:00:00".toLocalDateTime()
val duration: Duration = startDateTIme between endDateTIme // PT25HLocalDateTime 인스턴스를 String으로 변환합니다. 지원하는 확장 함수는 다음과 같습니다:
LocalDateTime 인스턴스를 지정한 형식의 String으로 변환하려면 toString 확장 함수를 사용하십시오.
import io.github.harryjhin.java.time.extension.toString
import io.github.harryjhin.java.time.extension.toLocalDateTime
import java.time.LocalDateTime
val dateTime: LocalDateTime = "2024-01-01T12:00:00".toLocalDateTime()
val str: String = dateTime.toString("yyyyMMdd HH:mm:ss") // 20240101 12:00:00LocalDateTime 인스턴스를 DateTimeFormatter로 변환하려면 toString 확장 함수를 사용하십시오.
import io.github.harryjhin.java.time.extension.toString
import io.github.harryjhin.java.time.extension.toLocalDateTime
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
val dateTime: LocalDateTime = "2024-01-01T12:00:00".toLocalDateTime()
val formatter: DateTimeFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss")
val str: String = dateTime.toString(formatter) // 2024/01/01 12:00:00