본문 바로가기
프로그래밍 팁/Swift

Swift에서 Unix Timestamp 값을 얻는 방법

by Archivers 2020. 11. 16.

 

 

스위프트로 코딩할 때 가끔 서버와의 통신 등을 이유로 유닉스 타임스탬프를 사용해야 할 때가 있습니다. 그런데 스위프트에서는 기본적으로 유닉스 타임스탬프 값을 얻는 방법을 제공하고 있지 않습니다. 따라서 이번 포스팅에서는 이를 간단하게 익스텐션으로 구현하는 방법에 대해 알아보겠습니다.

유닉스 타임스탬프(Unix Timestamp)

구현하기에 앞서 유닉스 타임스탬프에 대해 간단히 알아보겠습니다. 유닉스 타임스탬프란, 1970년 1월 1일 0시(UTC)를 기점으로 현재까지의 경과 시간을 초 단위로 환산하여 나타낸 값입니다. 예를 들어 2020년 1월 1일 0시(UTC)는 유닉스 시간으로 1577836800으로 표기합니다.

구현 방법

Date의 익스텐션에 프로퍼티 혹은 스태틱 프로퍼티를 추가함으로써 간단히 구현할 수 있습니다.

extension Date {
    static var timestamp: Int64 {
        Int64(Date().timeIntervalSince1970 * 1000)
    }
}

위와 같이 정의했을 경우에 Date.timestamp의 형태로 현재의 타임스탬프를 간편하게 얻을 수 있습니다. 현재의 타임스탬프 값보다 특정 날짜 객체의 타임스탬프를 사용하는 경우가 더 많다면 다음과 같이 static 키워드를 제거하고 정의할 수도 있습니다.

extension Date {
    var timestamp: Int64 {
        Int64(timeIntervalSince1970 * 1000)
    }
}

이렇게 정의했다면 createdAt이라는 Date 객체가 있다고 했을 때, createdAt.timestamp의 형태로 특정 날짜의 타임스탬프 값을 얻을 수 있게 됩니다.

댓글