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

loganberry·2020년 10월 29일
1

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개발자 꿈나무

관심 있을 만한 포스트

0개의 댓글