Objective c NSDate DATEFORMSTRING:返回null

Objective c NSDate DATEFORMSTRING:返回null,objective-c,nsdate,nsdateformatter,Objective C,Nsdate,Nsdateformatter,我看过很多关于这个主题的帖子,但我无法解决我的/我想我的格式日期有问题,但我不知道是哪一个 dateStr = @"Thu, 19 Dec 2013 13:33:58 +0000" // My string I want to convert NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"EEE, dd MMM y HH:m:s Z"]; // Her

我看过很多关于这个主题的帖子,但我无法解决我的/我想我的格式日期有问题,但我不知道是哪一个

dateStr = @"Thu, 19 Dec 2013 13:33:58 +0000" // My string I want to convert
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"EEE, dd MMM y HH:m:s Z"]; // Here might be the issue
NSLog(@"Date: %@", [dateFormatter dateFromString:dateStr]);
输出为:

2014-04-02 16:51:02.871 MyApp[3957:60b] Date: (null)
我尝试了一些不同的格式,但我总是得到空NSDate

我从Dropbox API中检索字符串,在文档中它表示格式为:

"%a, %d %b %Y %H:%M:%S %z" with strftime or strptime

谢谢

我注意到Dropbox“modified”文件日期元数据的NSDate转换只适用于知名地区,所以我使用了这种简单的方法

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setLocale: [[NSLocale alloc] initWithLocaleIdentifier: @"en_US"]];
    dateFormatter.dateFormat = @"EEE, dd MMM yyyy HH:mm:ss Z";
    NSDate *dateModified = [dateFormatter dateFromString:dropboxDictionay[@"modified"]];
   [dateFormatter setLocale:  [[NSLocale alloc] initWithLocaleIdentifier: [[NSLocale currentLocale] localeIdentifier]]]; 
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
[self.dateFormatter setTimeStyle:NSDateFormatterShortStyle];
myLabel.text = [dateFormatter stringFromDate:dateModified];
为我工作


Dimitris

今年请尝试“yyy”,而不是仅使用一个“y”,您可以从dropbox以非字符串格式获取日期?您的日期转换对我来说(在iOS模拟器中)没有问题,因此可能是区域设置问题。尝试将POSIX语言环境设置为(例如)此处所示:(也有其他类似的答案)。确定尝试
“EEE,dd MMM yyy HH:mm:ss Z”
是解决方案,谢谢@MartinR