2012-05-13 88 views
4

如何将日期字符串“2012-05-03 06:03:00 +0000”转换为NSDate。我的用户下面的代码,但它不工作:如何将带时区的日期字符串转换为NSDate

NSDateFormatter *datFormatter = [[NSDateFormatter alloc] init]; 
[datFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss Z"]; 
NSDate* date = [datFormatter dateFromString:dateStr]; 

回答

9
NSString *dateStr = @"2012-05-03 06:03:00 +0000"; 
    NSDateFormatter *datFormatter = [[NSDateFormatter alloc] init]; 
    [datFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss Z"]; 
    NSDate* date = [datFormatter dateFromString:dateStr]; 
    NSLog(@"date: %@", [datFormatter stringFromDate:date]); 

此代码打印date: 2012-05-03 09:03:00 +0300

它的工作原理。也不要忘记设置你的目标

+0

谢谢,什么'多,怎么加时区? – itenyh

+0

like that'datFormatter.timeZone = [NSTimeZone localTimeZone];' – Eugene

0

可以做这样的日期格式的时区: -

NSDateFormatter *datFormat = [[NSDateFormatter alloc] init]; 
[datFormat setTimeZone:[NSTimeZone timeZoneWithName:@"Yout TimeZone"]]; 
[datFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss Z"]; 
NSString *string = @"2012-05-03 06:03:00 +0000"; 
NSDate* date = [datFormat dateFromString:string]; 
相关问题