两个 NSDate 对象相减

发布于 2024-11-15 00:02:21 字数 445 浏览 4 评论 0原文

可能的重复:
如何获取 iPhone 中的时差

我正在获取日期和时间来自 JSON 提要。我需要找出从提要中获取的日期与今天的日期和时间之间的差异。有什么建议我可以如何做到这一点?

我知道我需要用从提要中获得的日期减去当前日期,但我不知道该怎么做。

例如:

提要日期:日期:2011-06-10 15:00:00 +0000 今天:Date: 2011-06-10 14:50:00 +0000

我需要显示差异是十分钟。

谢谢!

Possible Duplicate:
How to Get time difference in iPhone

I´m getting date and time from a JSON feed. I need to find the difference between the date I´m getting from the feed and today´s date and time. Any suggestions how I can do this?

I know I need to subtract the current date with the date I get from the feed, but I don´t know how to do it.

Ex:

Date from feed: Date: 2011-06-10 15:00:00 +0000
Today: Date: 2011-06-10 14:50:00 +0000

I need to display that the difference is ten minutes.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

亽野灬性zι浪 2024-11-22 00:02:21

使用 NSDate 的 -dateWithString: 从字符串创建两个 NSDate 对象,然后使用以下方法获取两个 NSdate 对象的差异

NSTimeInterval diff = [date2 timeIntervalSinceDate:date1];

Create two NSDate objects from the strings using NSDate's -dateWithString:, then get the difference of the two NSdate objects using

NSTimeInterval diff = [date2 timeIntervalSinceDate:date1];
千笙结 2024-11-22 00:02:21

在尝试比较之前,您需要将输入日期转换为 NSDate 对象。

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss +0000"];
NSDate *startDate = [dateFormatter dateFromString:yourJSONDateString];
NSDate *endDate = [NSDate date];

CGFloat minuteDifference = [endDate timeIntervalSinceDate:startDate] / 60.0;

格式化程序假定 UTC 偏移量始终为零。如果情况并非如此,请参阅 Microsoft 的日期格式字符串页面了解其他信息您可以使用的格式代码。

--

编辑:其他人使用的 dateWithString 方法在您的情况下会更好,但如果您获得的日期格式字符串不完全正确,则需要日期格式化程序。我认为我从未使用过以正确格式发送日期的 API,也许我只是运气不好:-(。

You need to convert the input date to an NSDate object before you try and compare.

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss +0000"];
NSDate *startDate = [dateFormatter dateFromString:yourJSONDateString];
NSDate *endDate = [NSDate date];

CGFloat minuteDifference = [endDate timeIntervalSinceDate:startDate] / 60.0;

The formatter assumses the UTC offset will always be zero. If this isn't true, see Microsoft's date format string page for other format codes you can use.

--

Edit: the dateWithString method that everyone else used will be better to use in your situation, but the date formatter is necessary if the date format string you are getting isn't exactly right. I don't think I've ever used an API that sent dates in the correct format, perhaps I'm just unlucky :-(.

沧桑㈠ 2024-11-22 00:02:21

从下面的代码中,您将了解比较两个 NSDate 对象。

NSDate *dateOne = [NSDate dateWithString:@"2011-06-10 15:00:00 +0000"];
NSDate *dateTwo = [NSDate dateWithString:@"2011-06-10 14:50:00 +0000"];

switch ([dateOne compare:dateTwo])
{
    case NSOrderedAscending:
         NSLog(@”NSOrderedAscending”);
         break;
    case NSOrderedSame:
        NSLog(@”NSOrderedSame”);
        break;
    case NSOrderedDescending:
       NSLog(@”NSOrderedDescending”);
       break;
}

From below code you will get an idea for comparing two NSDate objects.

NSDate *dateOne = [NSDate dateWithString:@"2011-06-10 15:00:00 +0000"];
NSDate *dateTwo = [NSDate dateWithString:@"2011-06-10 14:50:00 +0000"];

switch ([dateOne compare:dateTwo])
{
    case NSOrderedAscending:
         NSLog(@”NSOrderedAscending”);
         break;
    case NSOrderedSame:
        NSLog(@”NSOrderedSame”);
        break;
    case NSOrderedDescending:
       NSLog(@”NSOrderedDescending”);
       break;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文