2010-04-20 97 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

相關問題