[Swift] 날짜와 시간 다루기 - 1 (feat. Date, Calendar)

Logan·2020년 10월 29일
1
post-custom-banner

Date and Calendar

Date() 자료형으로 인스턴스를 생성하면 현재 날짜와 시간을 알 수 있습니다.
그리고 Calendar.current를 사용해, 현재 사용하고 있는 달력을 확인할 수 있습니다.

let now = Date()
let calendar = Calendar.current // gregorian (current)

Calendar의 identifier 생성자를 사용한다면 Swift가 제공하는 다양한 달력을 사용할 수 있습니다.

let calendar = Calendar(identifier: .buddhist) // 불교달력

Component

component는 '구성 요소'라는 뜻입니다.
Calendar 타입에서 component 메소드를 사용하면 날짜를 구성하는 다양한 요소(년, 월, 일, 시간 등) 중 얻고싶은 '하나의 요소'를 정수형으로 리턴해줍니다.

func component(_ component: Calendar.Component, from date: Date) -> Int

component 파라미터엔 얻고싶은 component를 전달하면 되고, 어떤 날짜로부터 얻을 것인지 Date 타입의 인스턴스를 전달해주면 됩니다.

let now = Date()
let calendar = Calendar.current
calendar.component(.year, from: now) // 2020

now의 .year가 리턴이 됩니다.
component에는 년, 월, 일 뿐만아니라 시간, 분 등 다양한 요소가 있습니다.
애플 문서를 확인하면 다양한 요소를 확인할 수 있습니다.
Calendar.Component 링크


extension Date

extension Date {
    var year: Int {
        let cal = Calendar.current
        return cal.component(.year, from: self)
    }
}

let now = Date()
now.year

방금 구현했던 코드를 extension으로 확장해 코드의 가독성이 올라갔습니다.
특정 인스턴스가 아닌, Date 타입 전체에 사용하기 위해 component 메소드 from 파라미터에 self를 전달했습니다.

profile
iOS개발자 꿈나무
post-custom-banner

0개의 댓글