可能重复:
如何在 iPhone 中获取时差
我从 JSON 提要中获取日期和时间。我需要找出我从提要中获得的日期与今天的日期和时间之间的差异。有什么建议我该怎么做?
我知道我需要用从提要中获得的日期减去当前日期,但我不知道该怎么做。
前任:
来自提要的日期:Date: 2011-06-10 15:00:00 +0000
今天:Date: 2011-06-10 14:50:00 +0000
我需要显示差异是十分钟。
谢谢!
可能重复:
如何在 iPhone 中获取时差
我从 JSON 提要中获取日期和时间。我需要找出我从提要中获得的日期与今天的日期和时间之间的差异。有什么建议我该怎么做?
我知道我需要用从提要中获得的日期减去当前日期,但我不知道该怎么做。
前任:
来自提要的日期:Date: 2011-06-10 15:00:00 +0000
今天:Date: 2011-06-10 14:50:00 +0000
我需要显示差异是十分钟。
谢谢!
使用 NSDate's 从字符串创建两个 NSDate 对象-dateWithString:
,然后使用获得两个 NSdate 对象的差异
NSTimeInterval diff = [date2 timeIntervalSinceDate:date1];
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,也许我只是不走运:-(。
从下面的代码中,您将了解比较两个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;
}