2010-04-20 100 views
0

我是iphone开发新手。我解析XML URL并在表格视图中显示标题,日期和摘要。我注意到有些日期很老,例如“Wed,1969 Dec 19:00:00 - 0500“,所以我不想显示比当年大1岁的日期。怎么做?我使用this网站的示例代码进行解析并显示详细信息。请帮助我。谢谢。如何在iphone中比较年份与当前年份?

回答

3

处理日期(NSDate类)是一件相当痛苦的事情,它给我带来了很多麻烦和愤怒。

基本上你有不同的方法:

1)从您的日期组件,并将它们与您的参考日期.. 可能是这个样子:

//因为你有一个NSDate对象称为dateOfSearch

unsigned int unitFlags = NSDayCalendarUnit|NSYearCalendarUnit; 
NSDateComponents *comp; 


NSCalendar *calendar = [NSCalendar currentCalendar]; 


comp = [calendar components:unitFlags fromDate:dateOfSearch]; 
NSInteger *year = [comp 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]; 

如果(区别< .....)

希望帮助

欢呼

2

除了讪讪的答案,并寻找到您的示例代码后,你有你的日期字符串转换为一个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"]; 
+0

谈论NSDateFormatters ...他们可能是世界上最资源匮乏的元素:)...特别是在解析很多元素时,要小心你只创建一次(读取:alloc,init)一次..以防万一想知道你的表现如何。 – samsam 2010-04-20 15:54:59

相关问题