YunDaeHyeon
← Lab

UIKit에서 현재 시각을 알아내기 위한 라이브러리

스터디2025.08.26
  • UIKit
  • Swift

UIKit에서 현재 시각을 얻기 위한 라이브러리 종류

iOS 기본 SDK Foundation에 시간 관련 API가 모두 들어있다.

1. Date

let now = Date()
print(now) // 2025-08-19 08:23:00 +0000 (UTC 기준)

Date | Apple Developer Documentation

Date()는 현재 시각 기준을 반환하지만 UTC 기준 임을 꼭 기억하자.

그러다보니 한국시간(KST) 등 현지 시간 표현을 하기 위해선 DateFormatter나 Calendar와 함께 사용해야한다.

이때 Date 구조체는 순간을 나타내는 시간의 절대값(timestamp)이다.


2. DateFormatter

DateFormatter | Apple Developer Documentation

DateFormatter는 날짜와 시간을 지역화된 문자열 로 변환시켜주는 다양한 설정과 옵션을 제공한다.

만약, Date()사용해 현재 시간을 뽑아왔을 때 시간을 표시하지 않고 월, 일, 연도 등을 표시하고자 하면 아래와 같이 사용하면 된다.

// 아래 코드는 공식문서에 기술된 코드입니다.
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .medium
dateFormatter.timeStyle = .none
 
let date = Date(timeIntervalSinceReferenceDate: 118800)
 
// US English Locale (en_US)
dateFormatter.locale = Locale(identifier: "en_US")
print(dateFormatter.string(from: date)) // Jan 2, 2001
 
// French Locale (fr_FR)
dateFormatter.locale = Locale(identifier: "fr_FR")
print(dateFormatter.string(from: date)) // 2 janv. 2001
 
// Japanese Locale (ja_JP)
dateFormatter.locale = Locale(identifier: "ja_JP")
print(dateFormatter.string(from: date)) // 2001/01/02

3. Calendar

calendar | Apple Developer Documentation

Calendar는 Date() 에서 원하는 시간대를 추출할 수 있게 해준다.

만약 시, 분, 초를 뽑아내서 활용하고 싶다면 아래와 같이 작성하면 된다!

let components = Calendar.current.dateComponents([.hour, .minute, .second], from: Date())
if let hour = components.hour,
   let minute = components.minute,
   let second = components.second {
    print("\(hour)시 \(minute)분 \(second)초")
}

💡 실제 적용해보기

Date와 Calendar를 함께 사용하여 현재 시각을 한국 시각 기준으로 불러와보자.

Date 구조체로 뽑아온 시간을 Calendar를 사용해 시, 분, 초만 저장한다.

let timeZone = TimeZone(identifier: "Asia/Seoul")!
let comps = Calendar.current.dateComponents([.hour, .minute, .second], from: Date(), timeZone: timeZone)
// 추후 let hour = compos.hour! 등으로 사용하면 된다.