2012-03-05 2 views
1

"GMT-09 : 00"으로 지정된 NSString 값으로 TimeZone을가집니다.NSTimeZone을 필수 형식으로 설정할 수 없습니다.

내가 원하는 것은이 형식으로 내 NSTimeZone을 설정하는 것입니다. 나는 시도했지만 할 수 없었다. 이 시간은 매번 달라질 수 있으므로 메서드에서 정적으로 설정할 수 없습니다.

예 : 나는 이것을 할 수 없다 - timeZoneForSecondsFromGMT : (- 9 * 3600).

또한 위의 형식 (GMT-09 : 00)을 초 단위로 변환 할 수 있습니까 ??

EDIT : 특정 GMT 형식으로 표준 시간대를 설정하고 싶습니다. GMT-09 : 00, GMT + 05 : 30 등이 될 수 있습니다.

정적 값인 경우 NSTimeZone에 대해 아래 방법을 사용할 수 있습니다.

[formatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:(-9*3600)]]; 

"GMT-09 : 00"값은 NSString입니다. 그래서 매번 문자열을 끊어야시와 분의 값을 가져야합니다. 더 쉬운 방법이 있습니까 ???? ????

도움 주셔서 감사합니다.

+1

GMT-09 : 00을 전화가 이해할 수있는 형식으로 변환 하시겠습니까? –

+0

오케이, 질문을 업데이트했습니다. – mayuur

답변

4

시도해 보셨습니까?

NSString *tzStr = @"GMT-09:00"; 
NSTimeZone *tz = [[NSTimeZone alloc] initWithName:tzStr]; 
NSLog(@"Tz: %@", tz); 
NSLog(@"Offset: %d", [tz secondsFromGMT]); 

// Tz: GMT-0900 (GMT-09:00) offset -32400 
// Offset: -32400 

@"GMT+5:30"과 함께 작동합니다.

// Tz: GMT+0530 (GMT+05:30) offset 19800 

후 바로 [formatter setTimeZone:tz];

+0

을 확인하십시오. 감사합니다. 효과가있었습니다 ... 실제로 문제는 다른 것뿐이었습니다. NSDateFormatter의 날짜 형식을 설정하는 것을 잊어 버렸기 때문에 날짜가 표시되지 않았습니다! – mayuur

0

이 하나가 당신에게 도움이됩니다를 사용합니다. 최적화 된 도움

float offsetSecond = ([[NSTimeZone systemTimeZone] secondsFromGMT]/3600.0);