2016-07-21 9 views
0

現在、タイムゾーンのオフセットをNSStringとして返そうとしています。夏時間を含むタイムゾーンのGMTオフセットを返します。

-5 

解析せずにこの番号にアクセスする簡単な方法がある場合は、私が知りたいのです:私は何をしたいことだけを返すです

NSDateFormatter *df = [NSDateFormatter new]; 

[df setDateFormat:@"dd/MM/yyyy HH:mm"]; 

//Create the date assuming the given string is in GMT 
df.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0]; 

//Create a date string in the local timezone 
df.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:[NSTimeZone localTimeZone].secondsFromGMT]; 
NSString *timezoneStr = [NSString stringWithFormat:@"%@", df.timeZone]; 

NSLog(@"date = %@", timezoneStr); 

//returns 
//GMT-0500 (GMT-5) offset -18000 

: は現在、私はこれをやっています文字列を通って値をとる。

また、サイドの質問として、上記のコードは+/-夏時間を考慮していますか?

+0

ローカルタイムゾーンまたは指定されたタイムゾーンのオフセットUTCをしたいですか? – Paulw11

+0

ハンドセットのローカルタイムゾーン。 – HurkNburkS

答えて

3

ローカルタイムゾーンのUTCは時間にオフセットしたい場合は、以下を使用することができます。

-(NSString *) UTCOffset { 
    NSTimeZone *localTZ = [NSTimeZone localTimeZone]; 
    float offset = localTZ.secondsFromGMT/3600.0; 
    return [NSString stringWithFormat:@"%g",offset]; 
} 

返された値は、夏時間が現在有効である場合に任意のオフセット夏時間が含まれます。具体的には、DSTが有効な場合、ローカルタイムゾーンは標準タイムゾーンの「DST相当」に変更されます。例えば私のタイムゾーンは「オーストラリア東部標準時(UTC + 10)」から「オーストラリア東部夏時間(UTC + 11)」に変更されます。

も注意一部のタイムゾーンはUTC(30分)からの分別時間差を持っているので、整数値は十分ではありません

+0

ありがとうございました – HurkNburkS

関連する問題