我以为我已经完成了“硬”部分,但似乎并非如此。我从RSS源中检索一个日期,我想将其转换为NSDate,然后将其更改为简单格式(MM / DD / YYYY)。日期在RSS源上以这种格式出现:
Thu,2012年11月1日17:41:56 CST
我已成功将其转换为NSDate。
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"E, d MMM yyyy HH:mm:ss zzz"];
NSDate *date = [[NSDate alloc] init];
//[df setDateStyle:NSDateFormatterMediumStyle]; Using these seems to change what it expects from the string I guess?
//[df setTimeStyle:NSDateFormatterMediumStyle];
date = [df dateFromString:string];
[self.tempItem setPubDate:[df dateFromString:string]];
NSLog(@"%@", [df dateFromString:string]);
所以我的日期很好,但就像我之前说的那样,我想把它转换成一个简单的日期。 当我使用setDateStyle时,我最终得到空值。当我不使用它时,我会得到正确的日期,而不是我希望它最终成为的格式。
答案 0 :(得分:2)
不是我希望它最终成为的格式。
因为NSLog()
不知道格式 - 它会怎么样? NSDate
没有任何内置的“格式”。您必须再次使用NSDateFormatter
从日期对象中获取字符串。基本上你必须使用的工作流程大致是:
NSDate
个对象
NSDateFormatter
的格式重新设置为您希望的格式NSString
。答案 1 :(得分:1)
只需创建另一个NSDateFormatter即可将NSDate转换为NSString
NSDateFormatter * dfSimple = [[NSDateFormatter alloc] init];
[dfSimple setTimeStyle:NSDateFormatterNoStyle];
[dfSimple setDateStyle:NSDateFormatterMediumStyle];
NSLog(@“%@”,[dfSimple stringFromDate:date]);
最好在这种情况下创建2个NSDateFormatter对象