Swift/Tips & Tricks

현재 시각 구하기 (Date, String)

iosswift 2022. 9. 7. 11:52

현재 시각 구하기.

 

1. Date Type

func localDate() -> Date {
        let nowUTC = Date()
        let timeZoneOffset = Double(TimeZone.current.secondsFromGMT(for: nowUTC))
        guard let localDate = Calendar.current.date(byAdding: .second, value: Int(timeZoneOffset), to: nowUTC) else {return Date()}
        
        return localDate
}

 

2. String Type

func getCurrentDateStr(dateFormat: String = "yyyy-MM-dd HH:mm:ss") -> String {
    let date = Date()
    
    let formatter = DateFormatter()
    formatter.timeZone = TimeZone(identifier: "Asia/Seoul")
    formatter.locale = Locale(identifier: "ko_KR")
    formatter.dateFormat = dateFormat
    
    return formatter.string(from: date)
}

 

현재 시각을 구한 후 해당 값을 TimeZone, Locale 을 세팅한 DateFormatter 로 다시 String 으로 변환 시 변환이 잘 안될 수 있다. 

주어진 시간에 대해 시간 Offset 을 다시 해서 그런 것으로 보인다.