Image
Kotlin/Time

Kotlin LocalTime Class를 이용해서 시간(시, 분, 초) 다루기

1. LocalTime 만들기

객체 생성 정적 메서드를 이용하여 LocalTime 인스턴스를 만든다.

/* 직접 지정하여 만들기 */
val time: LocalTime = LocalTime.of(19, 30, 20)

/* String을 LocalTime으로 만들기 */
val timeParse: LocalTime = LocalTime.parse("19:30:20")

/* 현재 시간을 LocalTime으로 만들기 */
val timeNow: LocalTime = LocalTime.now()

 

2. LocalTime에서 값 읽기

LocalTime는 시간 값을 읽는 여러 메서드를 제공한다.

  • LocalTime에서 직접 변수에 접근하여 읽는 방법
  • TemporalField를 이용하여 읽는 방법
val time: LocalTime = LocalTime.of(19, 30, 20)

/* 시간 출력하기 */
val hour: Int = time.getHour() // 19
val hourTempField: Int = time.get(ChronoField.HOUR_OF_DAY) // 19

/* 분 출력하기 */
val minute: Int = time.getMinute() // 30
val minuteTempField: Int = time.get(ChronoField.MINUTE_OF_HOUR) // 30

/* 초 출력하기 */
val second: Int = time.getSecond() // 20
val secondTempField: Int = time.get(ChronoField.SECOND_OF_MINUTE) // 20

 

3. LocalTime 속성 바꾸기

LocalTime은 불변객체이다. 따라서 속성값( 시, 분, 초 )을 바꾸려면 새로운 객체를 생성해 할당하거나 기존 객체에 재할당 해야 한다. 아래에서는 기존 객체에 재할당 했다.

  • 특정 값으로 바꾸기 : 특정 값으로 바꿀 때는 with연산을 이용한다.
var time: LocalTime = LocalTime.of(19, 30, 20)
time = time.withHour(20) // 20:30:20
time = time.withMinute(31) // 20:31:20
time = time.withSecond(21) // 20:31:21
  • 상대 값으로 바꾸기 : 상대 값으로 바꿀 때는 plus, minus 연산을 이용한다.
var time = LocalTime.of(19, 30, 20)
time = time.plusHours(1) // 20:30:20
time = time.plusMinutes(1) // 20:31:20
time = time.plusSeconds(1) // 20:31:21

 

4. LocalTime 포메팅하기

LocalTime 또한 LocalDate와 마찬가지로 포메팅 할 수 있다.

val timeFormatter: DateTimeFormatter = DateTimeFormatter.ofPattern("H:mm:ss")
val time: LocalTime = LocalTime.parse("19:30:20", timeFormatter) // LocalTime 객체 생성됨
val timeFormatterNew: DateTimeFormatter = DateTimeFormatter.ofPattern("H:mm.ss")
time.format(timeFormatterNew) // 19:30.20

 

반응형

 

이 글의 저작권은 '조세영의 Kotlin World' 에 있습니다. 글, 이미지 무단 재배포 및 변경을 금지합니다.

 

 

Kotlin, Android, Spring 사용자 오픈 카톡

오셔서 궁금한 점을 질문해보세요!
비밀번호 : kotlin22

open.kakao.com