【发布时间】:2013-11-11 09:53:45
【问题描述】:
在我的应用程序中,我将日期解析为来自 RSS 提要的字符串,并尝试按日期对它们进行排序。当我对字符串执行标准 sortDescriptor 时,它的排序很好,但是因为格式是“DD/MM/YYYY HH:MM:SS”,所以它是按天而不是整个日期排序的,所以我的列表不在按时间顺序。
因此,我试图将从 RSS 解析的日期字符串转换为 NSDate,然后按日期排序。但是,当我这样做时,它返回 null。谁能指出我哪里出错了?
// Loop through XML data
[rxml iterate:@"channel" usingBlock:^(RXMLElement *supportElement) {
[supportElement iterate:@"item" usingBlock:^(RXMLElement *repElement) {
// Assign element to string
NSString *title = [repElement child:@"title"].text;
NSString *description = [repElement child:@"description"].text;
NSString *imageurl = [repElement child:@"image"].text;
NSString *mystartDate = [repElement child:@"start_date"].text;
NSString *myendDate = [repElement child:@"end_date"].text;
// DESCRIPTION FORMATTING
description = [customStringParser parseHTML:description];
description = [customStringParser parseLinesMultiple:description];
description = [customStringParser removeSocialSignifiers:description];
currentFeed.description = description;
// DATE FORMATTING
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"DD/MM/YYYY HH:MM:SS"];
[dateFormatter setFormatterBehavior:NSDateFormatterBehaviorDefault];
NSDate *startDate = [dateFormatter dateFromString:mystartDate];
NSDate *endDate = [dateFormatter dateFromString:myendDate];
currentFeed.startDate = startDate;
currentFeed.endDate = endDate;
NSLog(@"%@", startDate);
NSLog(@"%@", endDate);
// Add a new object to the feeds array
[eventsFeeds addObject:currentFeed];
}];
[loadingView removeFromSuperview];
[self.loadingIndicator stopAnimating];
//sort array
NSSortDescriptor *sortByDate = [NSSortDescriptor sortDescriptorWithKey:@"startDate" ascending:NO];
[eventsFeeds sortUsingDescriptors:[NSArray arrayWithObject:sortByDate]];
我也相信我可能必须将 NSDate 转换回字符串,以便可以在视图控制器上的 detailTextLabel 中打印它,这是正确的吗?谢谢。
【问题讨论】:
-
能否请您发布一个来自 RSS Feed 源的示例日期字符串?
-
“2013 年 1 月 1 日”与“DD/MM/YYYY HH:MM:SS”不匹配
-
对不起,在我的问题中犯了一个小错误。从 RSS Feed 源,它以 DD/MM/YYYY HH:MM:SS 的形式出现。我在应用程序中有一些代码可以将其转换为 dd MMM yy 但我现在已经删除了。
-
您的日期格式严重不正确。
-
(您要求“一年中的一周”日历的年/月/年,小时:月:百分之一秒。请参阅unicode.org/reports/tr35/tr35-25.html#Date_Format_Patterns.)
标签: ios objective-c sorting nsstring nsdate