[iOS] Date

RudinP·2024년 2월 29일
0

Study

목록 보기
183/227

Date

  • Mac OS 기준 설정된 위치에 맞추어 날짜 출력됨
  • 콘솔에는 UTC 시간이 출력됨
  • 실제 인스턴스 내부에는 기준이 되는 날짜로부터 몇 초가 지났는지 실수값으로 저장되어있다.
    • Reference Date: 기준이 되는 날짜, Apple Epoch, Cocoa Epoch 라고도 함.
    • 2001.1.1 00:00:00

Reference Date

  • 초 단위이기 때문에 60*60을 하면 1시간이다.
  • 한국은 시차가 9시간이기 때문에 10:00AM으로 출력된다.

  • 음수를 더하면 이전 시간이 된다.

Time Interval

  • Swift에서 시간을 다룰 때에 기준은 TimeInterval이며, 단위는 초이다.
  • Double타입으로 1보다 작은 값도 가능하므로, 1ms는 TimeInterval(0.001)이다.

하루 다음 날짜 구하기

Date(timeIntervalSinceNow: TimeInterval(60*60*24))
  • timeIntervalSinceNow를 통해 현재 시간으로부터 특정시간 뒤를 구할 때 사용한다.

현재 날짜와 시간

Date()

다른 플랫폼과의 호환성을 위한 생성자

Date(timeIntervalSince1970: TimeInterval(60*60*24))
  • 다른 플랫폼은 2001.1.1 기준이 아닌 1970 기준이므로 이 생성자를 사용하면 호환성을 높일 수 있다.
    • Unix Epoch: 1970.1.1 00:00:00

기준이 되는 날짜를 직접 지정

Date(timeInterval: TimeInterval(60*60*24), since:    )

Calendar

Calendar.Identifier

  • 열거형
  • 달력 인스턴스가 만들어진다.

사용자가 설정한 캘린더 가져오기

Calendar.current //달력을 가져온 다음 사용자가 업데이트 해도 자동으로 연동하여 업데이트되지 않음
Calendar.autoupdatingCurrent //사용자가 다른 달력으로 바꾸면 자동으로 업데이트
  • 두 속성 모두 언어 및 지역에 설정해 둔 캘린더를 가져온다.
  • 보통 달력을 읽어온 뒤 계산하여 리턴하기 때문에 위쪽을 주로 씀

DateComponents

  • 날짜는 다양한 컴포넌트로 구성되어 있음
  • Datecomponents구조체로 구현되어 있음
  • 바로 Date.now.year같이 접근 불가능하고 Calendar의 도움을 받아 접근할 수 있음.
let calendar = Calendar.current
let components = calendar.dateComponents(components: Set<Calendar.Component>, from: Date)

원하는 날짜 만들기

  • TimeInterval은 초 단위이기 때문에 특정 날짜를 만드는데 적합하지 않다.
  • 일단 DateComponents를 원하는 값으로 채우고 Calendar가 제공하는 메소드를 사용해서 새로운 Date를 만든다.

  • 시간은 설정하지 않았기 때문에 00:00이 된다.

날짜 계산

  • byAdding: 더할 날짜
  • to: 기준 날짜

특정일로부터 지난 날짜 확인

profile
곰을 좋아합니다. <a href = "https://github.com/RudinP">github</a>

0개의 댓글