2011-06-30 26 views
0

我希望能够在我的应用程序来显示系统时区为单独的纯文本时,它启动:如何显示时区为文本?

- (void)viewDidLoad { 
    [super viewDidLoad]; 

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; 
    [dateFormatter setDateStyle:NSDateFormatterShortStyle]; 
    NSString* date = [dateFormatter stringFromDate:[NSDate date]]; 
    lblDate.text = date; 

NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"]; 
[dateFormatter setTimeZone:gmt]; 
NSString* zone = [gmt:[NSTimeZone defaultTimeZone]]; 
txtTZ.text = zone;` 

我的应用程序能够正确显示日期,但在时区崩溃。有什么建议么?

回答

1

尝试更换此:

NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"]; 
[dateFormatter setTimeZone:gmt]; 
NSString* zone = [gmt:[NSTimeZone defaultTimeZone]]; 
txtTZ.text = zone; 

有了这个:

NSString *zone = [[NSTimeZone systemTimeZone] abbreviation]; 
txtTZ.text = zone; 
+0

作品好了。谢谢!我可以使用相同的字符串来显示祖鲁语时区吗?例如:洛杉矶是格林威治标准时间-8格,而祖鲁语时区是+8格。 – 12Gig

+0

它将显示无论设备时区设置为。从文档:系统当前使用的时区。如果当前时区无法确定,则返回GMT时区。 – jaminguy

+0

这清理了很多。谢谢你的时间。 – 12Gig