2016-07-19 1 views
-1

문자열을 NSDate로 변환 한 다음 다시 문자열로 변환하는 방법은 무엇입니까?문자열을 NSDate, 잘못된 시간대로 변환

I는 다음과 같이 그 일을 시도 :

//String to NSDate 
let dateString = "2016-07-07T18:09:41Z" 
let dateFormatter = NSDateFormatter() 
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ" 
let date = dateFormatter.dateFromString(dateString) 

//NSDate to String 
let formatter = NSDateFormatter() 
formatter.dateFormat = "HH:mm" 
formatter.locale = NSLocale(localeIdentifier: "en") 
let time = formatter.stringFromDate(date!) 

그리고 시간을 내 경우에하는 것은 18시 9분에도 불구하고, 21시 9분입니다. 로케일 설정은 아무 것도하지 않습니다. 나는 아주 틀린 무엇인가하고있다라고 생각한다, 단지 무엇이 확실하지 않은.

답변

1

Locale은 시간대를 설정하지 않고 사용자의 로케일 및 환경 설정의 형식으로 설정하는 데 도움이됩니다. 명시 적으로 원하는 결과를 얻으려면 timeZone을 설정하십시오. 예를 들어 시간대를 시스템 시간대로 설정하려면 다음을 시도하십시오.

dateFormatter.timeZone = NSTimeZone.systemTimeZone() 

formatter.timeZone = NSTimeZone.systemTimeZone() 
+0

고맙습니다. – Xernox