我是iPhone开发的新手。我正在解析XML URL并在表格视图中显示标题,日期和摘要。
我注意到有些日期非常古老,比如“星期三,1969年12月31日19:00:00 -0500”,所以我不想显示比当年年长1岁的日期。怎么做?我使用this站点的示例代码进行解析并显示详细信息。
答案 0 :(得分:3)
处理日期(NSDate类)是一件相当痛苦的事情,它给我带来了很多麻烦和愤怒。
基本上你有不同的方法:
1。)从您的日期获取组件并将它们与您的参考日期进行比较。 看起来像这样:
//假设您有一个名为dateOfSearch的NSDate对象
unsigned int unitFlags = NSDayCalendarUnit|NSYearCalendarUnit;
NSDateComponents *comp;
NSCalendar *calendar = [NSCalendar currentCalendar];
comp = [calendar components:unitFlags fromDate:dateOfSearch];
NSInteger *year = [comp year];
// year no包含dateOfSearch对象所包含的年份。 //提醒您:这是向您展示如何提取NSDate对象年份的基本示例
2。)使用NSDate的timeReferenceSince1970
或其他“等价物”进行比较(更容易)
NSDate的timeReference方法返回两个referenceDates之间的秒数
所以一个好的方法是
NSDate *today = [[NSDate alloc] init] //today
NSDate *pastDate = [self getPastDateFromWhereEver];
NSTimeInterval *difference = [pastDate timeIntervalSinceDate:today];
if(差异< .....)
希望有所帮助
欢呼声
答案 1 :(得分:2)
除了samsam的答案之外,在查看您的示例代码之后,您必须将日期字符串转换为NSDate对象:
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss ZZZ"];
NSDate *myDate = [dateFormatter dateFromString:@"Wed, 31 Dec 1969 19:00:00 -0500"];