将datestring转换为目标c / iOS中的NSDate

我有这个string—-> Sun,2012年12月16日15:30:22 +0000

我想将其转换为NSDate。 我已经尝试了下面的代码,但它是给我null

NSDateFormatter *df = [[NSDateFormatter alloc] init]; [df setDateFormat:@"yyyy-MM-dd hh:mm:ss a"]; NSDate *date = [[NSDate alloc] init]; date = [df dateFromString: @"Sun, 16 Dec 2012 15:30:22 +0000"]; NSLog(@"date: %@", date); 

我没有得到这个问题?

任何指导PLZ

格式化程序的dateFormat需要与您提供的string格式相匹配。

因此,这样的事情应该工作

 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; formatter.dateFormat = @"EEE, dd MMM yyyy HH:mm:ss ZZZ"; NSLog(@"%@", [formatter dateFromString:@"Fri, 18 Jan 2013 15:30:22 +0000"]); 

查看Unicode技术标准#35中的说明符的含义

试试这个代码

 NSDateFormatter *df = [[NSDateFormatter alloc] init]; [df setDateFormat:@"EEEE, dd MMM yyyy"]; NSDate *date = [[NSDate alloc] init]; date = [df dateFromString: @"Sun, 16 Dec 2012"]; NSLog(@"date: %@", date); 

希望它可以帮助你..

编辑: –

为你的string

 NSDateFormatter *df = [[NSDateFormatter alloc] init]; [df setDateFormat:@"EEEE, dd MMM yyyy HH:mm:ss z"]; NSDate *date = [[NSDate alloc] init]; date = [df dateFromString: @"Sun, 16 Dec 2012 15:30:22 +0000"]; NSLog(@"date: %@", date); 

试试这个从string获取NSDate

 - (NSDate*) dateFromString:(NSString*)aStr { NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease]]; //[dateFormatter setDateFormat:@"YYYY-MM-dd HH:mm:ss a"]; [dateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss ZZZ"]; [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; NSLog(@"%@", aStr); NSDate *aDate = [dateFormatter dateFromString:aStr]; [dateFormatter release]; return aDate; } 

这对我来说可以。