NSDate dateFromString:返回null

时间:2014-04-02 14:56:37

标签: 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"]; // Here might be the issue
NSLog(@"Date: %@", [dateFormatter dateFromString:dateStr]);

输出是:

2014-04-02 16:51:02.871 MyApp[3957:60b] Date: (null)

我尝试了一些不同的格式,但我总是得到null NSDate。

我从Dropbox API中检索字符串,在文档中说明格式为:

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

由于

1 个答案:

答案 0 :(得分:0)

我注意到Dropbox“修改”文件日期元数据的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];

并为我工作......

迪米瑞斯