2011-08-04 3 views
4

시간대에 대해 자세히 알려주는 NSTimeZone 클래스가 있습니다. 하지만 시간의 오프셋만을 얻고 싶습니다. 예 : +05.30은 Inida에 대해 오프셋입니다. 즉, UTC를 기준으로 한 시간 오프셋입니다.iPhone - 시간대 오프셋을 얻는 방법?

다음 코드의 한 가지 문제점은 4.3 시뮬레이터와 충돌하고 4.2 시뮬레이터와 잘 작동한다는 것입니다. 4.2 시뮬레이터는 IST를 참조하여 GMT 및 4.3 시뮬레이터를 참조하여 출력을 제공하기 때문에

NSString* tzDescription = [[NSTimeZone systemTimeZone] description]; 
NSArray* tzArray = [tzDescription componentsSeparatedByString:@"GMT"]; 
NSString* gmtStr = [[tzArray objectAtIndex:1] substringToIndex:6]; 

일반적인 솔루션을 찾을 수 없습니다.

답변

5

NSDate 및 NSDateFormatter 클래스를 사용하여 시간대 오프셋을 가져올 수 있다고 생각합니다. 당신은 다음과 같은 방법으로 그것을 할 수 있습니다.

NSDate *date = [NSDate date]; 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] 
initWithDateFormat:@"zzz" allowNaturalLanguage:NO]; 
NSString *zoneOffset = [dateFormat stringFromDate:date]; 

이제 zoneOffset에서 필요한 작업을 수행하게됩니다.

+1

nice. ARC가 아닌 경우 dateFormat을 릴리스하는 것을 잊지 마십시오. –

관련 문제