Kotlin/Time

    [Kotlin Period Class] 날짜의 구간을 표현하는 클래스

    목표 Period Class는 날짜의 구간을 표현한다는 것을 이해한다. 개요 Period Class는 두 날짜 객체 사이의 구간(period)을 만드는 클래스이다. 날짜 데이터로만 Period Class를 만들 수 있다. 따라서 LocalDate를 이용해서만 Period를 만들어낼 수 있다. 생성 Period는 Period의 다양한 정적 메서드를 이용해 생성할 수 있다. between 메서드 val localDate1 = LocalDate.of(2021, 2, 12) val localDate2 = LocalDate.of(2021, 2, 14) val period = Period.between(localDate1, localDate2) println(period) // P2D //P : Period의 약자..

    [Kotlin Duration Class] 시간의 구간을 표현하는 클래스

    목표 Duration Class는 시간의 구간을 표현한다는 것을 이해한다. 개요 Duration Class는 두 시간 객체 사이의 지속시간(duration)을 만드는 클래스이다. 지속시간이므로, 날짜만으로는 구성이 불가능하다. 즉, Time요소가 들어간 데이터로만 Duration Class의 생성이 가능하다. 즉, 위의 초록색 상자에 들어간 클래스를 이용해서만 Duration Class를 만들 수 있다. Duration 생성 Duration은 Duration Class 내의 다양한 정적 메서드를 이용해 만들 수 있다. between 메서드 between 메서드는 두 시간 객체 사이의 차이를 이용해 duration을 만든다. val localTime1 = LocalTime.of(19, 30, 0); val..

    [Kotlin Instant Class] 기계 관점에서의 시간

    목표 기계 관점에서의 시간이 무엇인지, 왜 필요한지 이해한다. Instant를 만들기 위해서 필요한 구성 요소를 이해한다. 개요 기계에서 사람이 사용하는 날짜와 시간을 사용하기 위해서는 많은 기준과 그에 대한 연산이 필요하기 때문에 사람이 사용하는 날짜와 시간을 사용하여 시간을 표현하지 않는다. 기계의 관점에서는 날짜와 시간 단위를 끊어서 기록하기 보다는 연속된 시간에서 기준 시간을 두고 특정 지점을 하나의 수로 표현하는 것이 자연스럽다. 또한 특정 시간을 하나의 수로 표현하는 방식으로 데이터를 저장해야 시간 데이터를 수월하게 관리할 수 있다. 예를 들어 1970년 1월 1일 0시 0분 0초 UTC+0 이라는 시간 단위는 년, 월, 일, 시, 분, 초, 시간대 라는 7개 단위로 이루어져 있다. 이 시간은..

    Kotlin ZonedDateTime Class 을 이용하여 시간대를 포함하는 날짜, 시간 다루기

    목표 ZonedDateTime이 날짜, 시간, 시간대로 이루어진 것을 이해한다. ZonedDateTime을 생성하고 조작하는 방법을 안다. 개요 앞서 LocalDate, LocalTime, LocalDate Class들에서 우리는 날짜(연, 월, 일)와 시간(시, 분, 초)을 다루는 방법을 살펴보았다. 하지만, 날짜(연, 월, 일)과 시간(시, 분, 초)만으로는 절대값을 갖는 시간이 완성되지 않는다. 그것은 바로 시간대 때문이다. UTC라 불리는 시간대로 인해 한국에서의 저녁 9시는 미국의 새벽 4시이다. 이러한 시간대가 있어야 비로소 절대값을 갖는 시간이 완성된다. ZonedDateTime Class는 바로 이러한 세가지 요소를 모두 포함하는 Class이다. ZoneDateTime은 그 자체로 절대값을..

    [Kotlin] LocalDateTime Class - 날짜, 시간을 한 번에 다루는 클래스

    LocalDateTime 만들기 직접 날짜, 시간 지정하여 만들기 val dateTime = LocalDateTime.of(2021, 1, 26, 19, 30, 20) LocalDate와 LocalTime을 조합하여 만들기 val date: LocalDate = LocalDate.of(2021, 1, 26) val time: LocalTime = LocalTime.of(19, 30, 20) /* LocalDate와 LocalTime을 이용하여 LocalDateTime 만들기 */ val dateTime: LocalDateTime = LocalDateTime.of(date, time) val dateTime1: LocalDateTime = date.atTime(time) val dateTime2: Loca..