NSDate在iOS中返回零
我正在尝试从字符串设置NSDate在iOS中返回零,ios,objective-c,date,nsdate,nsdateformatter,Ios,Objective C,Date,Nsdate,Nsdateformatter,我正在尝试从字符串设置NSDate。字符串的格式如下所示(RFC 2822): 我使用的代码是: NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; dateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier: @"en_US_POSIX"]; dateFormatter.dateFormat = @"EEE, dd MMM yyyy hh:mm:
NSDate
。字符串的格式如下所示(RFC 2822):
我使用的代码是:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier: @"en_US_POSIX"];
dateFormatter.dateFormat = @"EEE, dd MMM yyyy hh:mm:ss Z";
NSDate *dateString = [dateFormatter dateFromString:self.time];
但是
dateString
总是返回一个nilself.time
肯定包含时间字符串。您可能需要设置时区。
[dateFormatter setTimeZone:[NSTimeZone defaultTimeZone]] 我认为你的self.time要么是零,要么是其他格式。要检查代码,请手动放置字符串并查看结果
NSString *str = @"Tue, 09 Jun 2015 06:09:38 +0000";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier: @"en_US_POSIX"];
dateFormatter.dateFormat = @"EEE, dd MMM yyyy hh:mm:ss Z";
NSDate *dateString = [dateFormatter dateFromString:str];
NSLog(@"date : %@",dateString);
我添加了一个样本,它给了我正确的结果。试着调试一下self.time的值如果我这样做,效果绝对不错
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier: @"en_US_POSIX"];
dateFormatter.dateFormat = @"EEE, dd MMM yyyy hh:mm:ss Z";
NSDate *dateString = [dateFormatter dateFromString:@"Tue, 09 Jun 2015 06:09:38 +0000"];
输出是:2015-06-09 06:09:38+0000这已经被问了数千次了。为什么您觉得有必要创建一个新问题?因为我认为这是不寻常的,因为无法看到dateFormat、locale等的明显错误。这非常有效。但是
self.time
似乎已经确定。非常奇怪…检查你的self.time值,代码中没有错误。只需调试变量的值。
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier: @"en_US_POSIX"];
dateFormatter.dateFormat = @"EEE, dd MMM yyyy hh:mm:ss Z";
NSDate *dateString = [dateFormatter dateFromString:@"Tue, 09 Jun 2015 06:09:38 +0000"];