일단 스위프트'만' 사용한다는 전제로 질문드립니다.
현재 시간으로 부터 -9 시간의 날짜와 시간을 구해서,
문자열로 된 특정 시간을 NSDate 타입으로 변환한 뒤 대소를 비교해야 합니다.
그냥 NSDate 타입을 문자열로 변환 하는것 까지는 문제없이 되는데,
문자열을 다시 NSDate 타입으로 변환을 하니 GMT 시간이 +0 시간으로 변환되서 반환 됩니다...
NSDate -> 문자열 은 이상없이 +9 시간으로 반환되구요.
NSDateFormatter 에 timeZone 설정은
dateFormatter.timeZone = NSTimeZone(name: "GMT+9")
이렇게 해줬구요...
그리고 한가지 더, 현재 시간에서 -9 시간을 해야 하는데,
let today = NSDate()
let calendar = NSCalendar.currentCalendar()
let components = calendar.components(.CalendarUnitYear | .CalendarUnitMonth | .CalendarUnitDay | .CalendarUnitHour | .CalendarUnitMinute | .CalendarUnitSecond , fromDate: today)
components.hour = components.hour - 9
let year = components.year
let month = components.month
let day = components.day
let hour = components.hour
let minutes = components.minute
let seconds = components.second
var result = "\(year)-\(month)-\(day) \(hour):\(minutes)"
이런식으로 NSDate 선언 후 NSCalendar 와 calendar.components 를 이용해 정수값으로 받아오고 있는데요...
구글링 해도 components.hour 에서 값 지정해주는거 정도나 있지, -9 했을때 그 숫자가 마이너스 값이 되었을때 자동으로 날짜가 줄거나 월이 줄거나 하진 않더군요.
혹시 이러한 문제점을 겪어보셨고 해결하신분 있으시면 좀 알려주세요.
같이 일하는 분이 요거때매 벌써 3일인지 4일을 날려서 일이 진행이 안됨...ㅠㅠ
출처 |
같은 회사 형이 개발하는 iOS 옆에서 돕다가 빡친 나... |