【问题标题】:Can't parse RFC822 date无法解析 RFC822 日期
【发布时间】:2015-03-31 12:05:53
【问题描述】:

我是 Objective-c 的新手,我遇到了日期格式器的第一个问题。我正在解析提要并获得文章的日期。

格式为:Tue, 31 Mar 2015 10:52:33 。我想将此刺痛转换为日期。我尝试了多种方法,但总是得到这个:

NSDate *articleDate = [NSDate dateFromInternetDateTimeString:dataArticol formatHint:DateFormatHintRFC3339];
NSDate *newData=[NSDate dateFromInternetDateTimeString:dataArticol formatHint:@"EEE , dd-MM-yyyy'T'HH:mm:ss.SSSZ"];

结果:

2015-03-31 14:54:40.744 FluxRSS[6358:1052102] Could not parse RFC822 date: "Tue, 31 Mar 2015 10:52:33
            " Possible invalid format.

或者如果我喜欢:

 NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"EEE , dd-MM-yyyy'T'HH:mm:ss.SSSZ"];
    [formatter setLenient:YES];

    NSString* buggeredTime = [[dataArticol substringToIndex:26] stringByAppendingString:[dataArticol substringFromIndex:27]];

    NSDate* dueDate = [formatter dateFromString:buggeredTime];
    [formatter setDateFormat:@"'Time Due: 'hh:mm a  MM/dd/yy"];
    NSString* dateString = [formatter stringFromDate:dueDate];

dueData 为 nil 。任何人都可以帮助我吗?

【问题讨论】:

  • 仅通过查看日期和您使用的格式就可以判断您提供给的格式化程序是错误的。一个简单的搜索就可以让你在这里做你想做的事情,比如NSDate to RFC 2822 Date format

标签: ios objective-c nsdateformatter


【解决方案1】:

使用它正在工作的代码..

 NSString *string=@"Tue, 31 Mar 2015 10:52:33";
 NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
 [formatter setDateFormat:@"EEE, dd MM yyyy HH:mm:ss"];
 NSDate *date=[formatter dateFromString:string];

【讨论】:

  • 是的。它的工作,但如果我把 NSString *string=dataArticol;结果为零。
  • NSString *dataArticol= [[stories objectAtIndex:storyIndex] objectForKey:@"pubDate"]; dataArticol = [dataArticol stringByReplacingOccurrencesOfString:@" +0000" withString:@""];这就是设置dataArticol的方式
  • (lldb) po dataArticol 2015 年 3 月 31 日星期二 10:52:33
  • [格式化程序 setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss Z"]; [格式化程序 setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss"];检查两种甲酸盐都可以工作......
猜你喜欢
  • 2018-01-30
  • 1970-01-01
  • 1970-01-01
  • 2011-05-30
  • 2013-05-23
相关资源
最近更新 更多