logo

줄리아에서 날짜 및 시간 관련 함수 사용하는 법 📂줄리아

줄리아에서 날짜 및 시간 관련 함수 사용하는 법

개요 1

Dates는 날짜 및 시간과 관련된 함수를 모아놓은 모듈이다. 일반적인 프로그래밍은 물론이고 시계열에 관련된, 아니 관련 없더라도 많은 데이터를 다루는 데에 있어서 유용할 수밖에 없다1.

코드

전체코드

using Dates

오늘 = DateTime(2022,3,10)
typeof(오늘)

propertynames(오늘)
오늘.instant

myformat = DateFormat("d-m-y")
내일 = Date("11-3-2022", myformat)

Dates.dayname(내일)

일주일뒤까지 = 오늘:Day(1):DateTime(2022,3,17)
collect(일주일뒤까지)

Dates.Day(일주일뒤까지[end]) - Dates.Day(오늘)

DateTime 타입

julia> 오늘 = DateTime(2022,3,10)
2022-03-10T00:00:00

julia> typeof(오늘)
DateTime

가령 DateTime() 함수로 22년 3월 10일의 날짜를 위와 같이 오늘에 할당했다면, 오늘DateTime이라는 타입을 가진다. DateTimeinstant라는 프로퍼티를 가지며, 밀리초로 환산된 수로써 시간을 기록하고 있다.

julia> propertynames(오늘)
(:instant,)

julia> 오늘.instant
Dates.UTInstant{Millisecond}(Millisecond(63782553600000))

포맷 DateFormat()

julia> myformat = DateFormat("d-m-y")
dateformat"d-m-y"

julia> 내일 = Date("11-3-2022", myformat)
2022-03-11

흔히 동서양의 차이 때문에 날짜가 다르게 적힐 때 쓰인다.

요일 Dates.dayname()

julia> Dates.dayname(내일)
"Friday"

해당 날짜의 요일을 리턴해준다. 양력의 부조리함 때문에 의외로 내가 짜려면 어려운 함수가 이런 것들이다.

날짜의 벡터

julia> 일주일뒤까지 = 오늘:Day(1):DateTime(2022,3,17)
DateTime("2022-03-10T00:00:00"):Day(1):DateTime("2022-03-17T00:00:00")

julia> collect(일주일뒤까지)
8-element Vector{DateTime}:
 2022-03-10T00:00:00
 2022-03-11T00:00:00
 2022-03-12T00:00:00
 2022-03-13T00:00:00
 2022-03-14T00:00:00
 2022-03-15T00:00:00
 2022-03-16T00:00:00
 2022-03-17T00:00:00

줄리아 날짜 패키지에서 가장 유용한 부분이다. 특정 시점 사이의 구간을 위와 같이 네이티브한 줄리아 문법 그대로 벡터화하면 정말 상상하던대로의 결과가 나온다. 짜기 어려운 건 둘째치고 같은 기능을 하는 함수 정도는 다른 언어에도 있을지 모르겠지만, 이정도로 문법에 잘 녹아들어서 뛰어난 직관성을 가지는 경우는 흔치 않을 것이다.

날짜의 뺄셈 -

julia> Dates.Day(일주일뒤까지[end]) - Dates.Day(오늘)
7 days

당연하다는 듯이 뺄셈으로 두 시점의 간격을 계산할 수 있다. Dates.canonicalize()를 사용하면 시,분,초 단위로 예쁘게 출력할 수 있다.

환경

  • OS: Windows
  • julia: v1.7.0