将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; }
这对我来说可以。