Skip to content

Duration

주진현 edited this page Aug 30, 2024 · 1 revision

java.time.Duration는 시(Hour), 분(Minute), 초(Second), 밀리초(Millisecond), 마이크로초(Microsecond), 나노초(Nanosecond)에 대해서 시간의 양(기간)을 나타내는 클래스입니다.

1 instance 생성

Duration 인스턴스를 생성하는 여러 가지 방법이 있습니다:

1.1 String.toDuration(): Duration

주어진 StringDuration으로 파싱합니다. StringISO-8601 기간을 따라야 합니다.

import io.github.harryjhin.java.time.extension.toDuration
import java.time.Duration

val duration: Duration = "PT1H30M".toDuration()

만약 String이 파싱할 수 없는 값이라면 DateTimeParseException이 발생합니다.

val duration: Duration = "ABC".toDuration() // throw DateTimeParseException

1.2 String.toDurationOrNull(): Duration?

주어진 StringDuration으로 파싱합니다. 만약 String이 파싱할 수 없는 값이라면 null을 반환합니다. StringISO-8601 기간을 따라야 합니다.

import io.github.harryjhin.java.time.extension.toDurationOrNull
import java.time.Duration

val duration: Duration? = "PT1H30M".toDurationOrNull()

만약 String이 파싱할 수 없는 값이라면 null을 반환합니다.

val duration: Duration? = "ABC".toDurationOrNull() // null

1.3 Int.hours: Duration

주어진 Int를 시(hour)로 해석하고 Duration 인스턴스를 생성합니다.

import io.github.harryjhin.java.time.extension.hours
import java.time.Duration

val duration: Duration = 1.hours // PT1H

1.4 Long.hours: Duration

주어진 Long을 시(hour)로 해석하고 Duration 인스턴스를 생성합니다.

import io.github.harryjhin.java.time.extension.hours
import java.time.Duration

val duration: Duration = 1L.hours // PT1H

1.5 String.hours: Duration

주어진 String을 시(hour)로 해석하고 Duration 인스턴스를 생성합니다.

import io.github.harryjhin.java.time.extension.hours
import java.time.Duration

val duration: Duration = "1".hours // PT1H

만약 StringLong으로 표현할 수 없는 값이라면 NumberFormatException이 발생합니다.

val duration: Duration = "9223372036854775808".hours // throw NumberFormatException

1.6 Int.minutes: Duration

주어진 Int를 분(minute)으로 해석하고 Duration 인스턴스를 생성합니다.

import io.github.harryjhin.java.time.extension.minutes
import java.time.Duration

val duration: Duration = 30.minutes // PT30M

1.7 Long.minutes: Duration

주어진 Long을 분(minute)으로 해석하고 Duration 인스턴스를 생성합니다.

import io.github.harryjhin.java.time.extension.minutes
import java.time.Duration

val duration: Duration = 30L.minutes // PT30M

1.8 String.minutes: Duration

주어진 String을 분(minute)으로 해석하고 Duration 인스턴스를 생성합니다.

import io.github.harryjhin.java.time.extension.minutes
import java.time.Duration

val duration: Duration = "30".minutes // PT30M

만약 StringLong으로 표현할 수 없는 값이라면 NumberFormatException이 발생합니다.

val duration: Duration = "9223372036854775808".minutes // throw NumberFormatException

1.9 Int.seconds: Duration

주어진 Int를 초(second)로 해석하고 Duration 인스턴스를 생성합니다.

import io.github.harryjhin.java.time.extension.seconds
import java.time.Duration

val duration: Duration = 30.seconds // PT30S

1.10 Long.seconds: Duration

주어진 Long을 초(second)로 해석하고 Duration 인스턴스를 생성합니다.

import io.github.harryjhin.java.time.extension.seconds
import java.time.Duration

val duration: Duration = 30L.seconds // PT30S

1.11 String.seconds: Duration

주어진 String을 초(second)로 해석하고 Duration 인스턴스를 생성합니다.

import io.github.harryjhin.java.time.extension.seconds
import java.time.Duration

val duration: Duration = "30".seconds // PT30S

만약 StringLong으로 표현할 수 없는 값이라면 NumberFormatException이 발생합니다.

val duration: Duration = "9223372036854775808".seconds // throw NumberFormatException

1.12 Int.milliseconds: Duration

주어진 Int를 밀리초(millisecond)로 해석하고 Duration 인스턴스를 생성합니다.

import io.github.harryjhin.java.time.extension.milliseconds
import java.time.Duration

val duration: Duration = 500.milliseconds // PT0.5S

1.13 Long.milliseconds: Duration

주어진 Long을 밀리초(millisecond)로 해석하고 Duration 인스턴스를 생성합니다.

import io.github.harryjhin.java.time.extension.milliseconds
import java.time.Duration

val duration: Duration = 500L.milliseconds // PT0.5S

1.14 String.milliseconds: Duration

주어진 String을 밀리초(millisecond)로 해석하고 Duration 인스턴스를 생성합니다.

import io.github.harryjhin.java.time.extension.milliseconds
import java.time.Duration

val duration: Duration = "500".milliseconds // PT0.5S

만약 StringLong으로 표현할 수 없는 값이라면 NumberFormatException이 발생합니다.

val duration: Duration = "9223372036854775808".milliseconds // throw NumberFormatException

1.15 Int.microseconds: Duration

주어진 Int를 마이크로초(microsecond)로 해석하고 Duration 인스턴스를 생성합니다.

import io.github.harryjhin.java.time.extension.microseconds
import java.time.Duration

val duration: Duration = 500.microseconds // PT0.0005S

1.16 Long.microseconds: Duration

주어진 Long을 마이크로초(microsecond)로 해석하고 Duration 인스턴스를 생성합니다.

import io.github.harryjhin.java.time.extension.microseconds
import java.time.Duration

val duration: Duration = 500L.microseconds // PT0.0005S

1.17 String.microseconds: Duration

주어진 String을 마이크로초(microsecond)로 해석하고 Duration 인스턴스를 생성합니다.

import io.github.harryjhin.java.time.extension.microseconds
import java.time.Duration

val duration: Duration = "500".microseconds // PT0.0005S

만약 StringLong으로 표현할 수 없는 값이라면 NumberFormatException이 발생합니다.

val duration: Duration = "9223372036854775808".microseconds // throw NumberFormatException

1.18 Int.nanoseconds: Duration

주어진 Int를 나노초(nanosecond)로 해석하고 Duration 인스턴스를 생성합니다.

import io.github.harryjhin.java.time.extension.nanoseconds
import java.time.Duration

val duration: Duration = 500.nanoseconds // PT0.0000005S

1.19 Long.nanoseconds: Duration

주어진 Long을 나노초(nanosecond)로 해석하고 Duration 인스턴스를 생성합니다.

import io.github.harryjhin.java.time.extension.nanoseconds
import java.time.Duration

val duration: Duration = 500L.nanoseconds // PT0.0000005S

1.20 String.nanoseconds: Duration

주어진 String을 나노초(nanosecond)로 해석하고 Duration 인스턴스를 생성합니다.

import io.github.harryjhin.java.time.extension.nanoseconds
import java.time.Duration

val duration: Duration = "500".nanoseconds // PT0.0000005S

만약 StringLong으로 표현할 수 없는 값이라면 NumberFormatException이 발생합니다.

val duration: Duration = "9223372036854775808".nanoseconds // throw NumberFormatException