Date

Din의 개발노트·2021년 1월 4일
0

📆 Date

iOS에서 날짜를 처리하는 방법

  • Class -> NSDate, NSCalendar, NSDateComponents, NSTimeZone, NSLocale

  • Structure -> Date, Calendar, DateComponents, TimeZone, Locale

  • as 연산자로 타입캐스팅 할 수 있다.

let now = Date() // 현재 날짜와 시간이 저장된 인스턴스가 생성됩니다.

Reference Date

기준 일자

UTC TimeZone에서 2001.1.1. 00:00:00을 나타냅니다.

여기에 숫자를 더하면 이후 날짜를 얻을 수 있고, 빼면 이전 날짜를 얻을 수 있습니다.

Date(timeIntervalSinceReferenceDate: 60 * 60) // Reference Date 시간의 1시간 후
Date(timeIntervalSinceReferenceDate: -60 * 60) // Reference Date 시간의 1시간 전

TimeInterval

날짜와 시간은 TimeInterval 단위로 처리합니다.
초 단위의 값을 저장합니다. 1.0이 1초

let oneSec = TimeInterval(1)
let oneMin = TimeInterval(60)
let oneHour = TimeInterval(oneMin * 60)
let oneDay = TimeInterval(oneHour * 24)

// 원하는 날짜와 시간을 설정할 수 있음.
let after24Hours = Date(timeIntervalSinceNow: oneDay)

DateComponents

↓ 새로운 날짜를 생성하는 코드

let calendar = Calendar.autoupdatingCurrent
var components = DateComponents()
components.year = 2014
components.month = 4
components.day = 16

let date = calendar.date(from: components)

↓ 현재 날짜에서 년, 월, 일 확인하는 코드

let calendar = Calendar.current
let now = Date()
let componets = calendar.dateComponents([.year, .month, .day], from: now)
componets.year
componets.month
componets.day

let year = calendar.component(.year, from: now)

↓ 두 날짜 사이에 일수 계산

let startDate = calendar.date(from: componets)

let days = calendar.dateComponents([.day], from: startDate!, to: now).day

↓ 오늘로부터 100일이 지난 날짜를 계산하는 코드

let calendar = Calendar.current
var components = DateComponents()
components.day = 123

let date = calendar.date(byAdding: components, to: Date())

TimeZone

우리나라에서 사용하는 TimeZone의 이름은 Korean Standard Time / KST
UTC + 09:00, Asia/Seoul

↓ TimeZone을 직접 설정하는 코드

let calendar = Calendar.current
var components = DateComponents()
components.year = 2021
components.month = 1
components.day = 21
components.timeZone = TimeZone(identifier: "Asia/Seoul")

let date = calendar.date(from: components)
profile
iOS Develpoer

0개의 댓글