解析iOS SDK:在Date对象上转换和执行操作

时间:2014-09-23 19:27:00

标签: ios objective-c nsdate nsdateformatter

方案

在我的应用程序中,我使用的是parse.com框架,并将显示某些用户发布的帖子。显示的帖子将包含一些信息,包括“createdAt”属性。为每个帖子自动解析的“createdAt”属性就像这样......

2014-09-23 17:55:55 +0000

我正在使用解析创建的日期

我接受了解析创建的日期,我在“日期”和“时间”部分将它分开......

NSString *parseDateAndTime = [NSString stringWithFormat:@"%@", object.createdAt];

NSArray *postDateSplit = [parseDateAndTime componentsSeparatedByString:@" "];

NSLog(@"parse date = %@", [postDateSplit objectAtIndex:0]);

NSLog(@"parse time = %@", [postDateSplit objectAtIndex:1]);

注销......

enter image description here

我需要什么

我希望能够告知用户每个帖子的发布时间。 如果是那天发布的,那么多少小时前。如果它是在那个小时发布的,那么多少分钟前。我认为你得到漂移。

(我需要喜欢这个伪代码)......

NSTimeInterval interval = [object.createdAt timeIntervalSinceNow];

if (interval = today) {

    if (interval > sixHoursAgo) {

        self.dateLabel.text = @"earlier today";

    }

    else if (interval < sixHoursAgo) {

        if (interval < oneHourAgo) {

            self.dateLabel.text = [NSString stringWithFormat:@"%@m ago", numberOfMinutes];

        }

        else {

            self.dateLabel.text = [NSString stringWithFormat:@"%@hrs ago", numberOfHours];

        }

    }

    else {

        self.dateLabel.text = [NSString stringWithFormat:@"today at %@", time];
    }

}

else if (interval = yesterday) {

    self.dateLabel.text = [NSString stringWithFormat:@"yesterday at %@", time];

}

else {

    self.dateLabel.text = [NSString stringWithFormat:@"%@ at %@", date, time];

}

问题

如何将上述逻辑用于实际代码?

1 个答案:

答案 0 :(得分:0)

不要重新发明轮子! 将其转换为日期并使用类似NSDate + TimeAgo的库:

https://github.com/kevinlawler/NSDate-TimeAgo