2011-05-18 54 views
1

我是非常新的iPhone。我有一个问题。首先检查我的代码。没有得到适当的时区

NSString *timeZone=[NSString stringWithFormat:@"%@",[[NSTimeZone systemTimeZone] abbreviation]]; 
NSLog(@"Print Time Zone :- '%@'",timeZone); 
NSRange Timerange=[timeZone rangeOfString:@"+"]; 
NSString *time; 

if(Timerange.location == NSNotFound) 
{ 
    Timerange=[timeZone rangeOfString:@"-"]; 
    time=[timeZone substringFromIndex:Timerange.location]; 
    NSLog(@"Time is :- '%@'",time); 
    time=[time stringByReplacingOccurrencesOfString:@"-" withString:@"M"]; 

} 
else 
{ 
    Timerange=[timeZone rangeOfString:@"+"]; 
    time=[timeZone substringFromIndex:Timerange.location]; 
    NSLog(@"Time is :- '%@'",time); 
    time=[time stringByReplacingOccurrencesOfString:@"+" withString:@"P"]; 
} 

它在iPhone模拟器4.2工作正确的,但它在模拟器4.3这样崩溃还有什么能问题?

感谢

+0

尝试粘贴的崩溃日志。 – 2011-05-18 06:51:24

回答

1
NSDate *date=[NSDate date]; 
    NSDateFormatter *formatter=[[NSDateFormatter alloc]init]; 
    [formatter setDateFormat:@"MM/dd/yyyy hh:mm:ss a"]; 
    [formatter setTimeZone:[NSTimeZone systemTimeZone]]; 

    [formatter setTimeStyle:NSDateFormatterLongStyle]; 

    NSString *dateOfGame =[formatter stringFromDate:date]; 

    NSString *timeZone = [dateOfGame substringFromIndex:12]; 

    NSLog(@"dateOfGame%@",timeZone); 

与此代码

1

你可能需要编码像这样

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; 
[dateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease]]; 
[dateFormatter setDateFormat:@"z"]; 

NSDate *date = [NSDate date]; 
NSString *dateString = [dateFormatter stringFromDate:date]; 
相关问题