Iphone 无法将NSTimeZone设置为所需格式

Iphone 无法将NSTimeZone设置为所需格式,iphone,nsdate,nsdateformatter,nstimezone,Iphone,Nsdate,Nsdateformatter,Nstimezone,我有一个时区作为NSString值,给定为“GMT-09:00” 我只想用这种格式设置我的NSTimeZone。我试过了,但没能做到。这个时间可能每次都不同,所以我不能在方法中将它设置为静态 我不能这样做——时区每秒从格林尼治标准时间:(-9*3600) 另外,我可以将上述格式(GMT-09:00)转换为秒数吗 编辑:我只想将时区设置为特定的GMT格式。它可以是任何东西,GMT-09:00、GMT+05:30等等。 如果它是一个静态值,我可以对NSTimeZone使用下面的方法 [formatt

我有一个时区作为NSString值,给定为“GMT-09:00”

我只想用这种格式设置我的NSTimeZone。我试过了,但没能做到。这个时间可能每次都不同,所以我不能在方法中将它设置为静态

我不能这样做——时区每秒从格林尼治标准时间:(-9*3600)

另外,我可以将上述格式(GMT-09:00)转换为秒数吗

编辑:我只想将时区设置为特定的GMT格式。它可以是任何东西,GMT-09:00、GMT+05:30等等。

如果它是一个静态值,我可以对NSTimeZone使用下面的方法

[formatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:(-9*3600)]];
但是值“GMT-09:00”是一个NSString。所以每次,我都必须打破字符串,得到小时和分钟的值。有更简单的方法吗


谢谢你的帮助

你试过这样的东西吗

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]

您尝试过类似的方法吗

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]

这一条对你很有帮助。优化帮助

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

这个对你有帮助。优化帮助

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

我真的不明白你的问题,你想把GMT-09:00转换成手机可以理解的格式吗?哦,好的,我已经更新了问题。请检查我真的不明白你的问题,你想把GMT-09:00转换成手机可以理解的格式吗?哦,好的,我已经更新了问题。请检查好的,谢谢,成功了。。。事实上,问题只是别的。我忘了为NSDateFormatter设置日期格式,因此,日期没有显示!好的,谢谢,成功了。。。事实上,问题只是别的。我忘了为NSDateFormatter设置日期格式,因此,日期没有显示!