当前日期,转换为多个时区,然后每个时区都需要检查它是否接近另一个日期

时间:2012-02-03 21:07:45

标签: objective-c ios nsdate nstimezone

我有一个项目需要获取当前日期/时间。从那个日期/时间开始,我需要转换为6个不同时区的日期/时间。转换时间是没有问题的。

然后,从每个转换的日期/时间我需要查看该日期是否在每周更改的两个其他日期之间。我猜每次改变的时间可能是一系列日期。该时区中的当前日期/时间需要找出它需要检查自己的数组中的日期/时间。最近的和最近的。只要输入这个就听起来很混乱。

任何帮助我指明正确方向的帮助都会非常有帮助。

三江源

2 个答案:

答案 0 :(得分:0)

NSDate *date1;
NSDate *date2;
NSDate *date3;

NSTimeInterval firstTimeInterval = [date1 timeIntervalSince1970];
NSTimeInterval secondTimeInterval = [date2 timeIntervalSince1970];
NSTimeInterval thirdTimeInterval = [date3 timeIntervalSince1970];

if (firstTimeInterval<secondTimeInterval && secondTimeInterval<thirdTimeInterval) {
    // date2 > date1 and date2 < date3
}

当然,在我的情况下它会崩溃,因为日期没有地址,但它只是一个例子......你需要在它们中有实际的日期。

答案 1 :(得分:0)

要检查日期是否在指定范围内,只需获取unix时间戳并直接比较它们,如下所示:

NSDate *lowerLimit = ...
NSDate *upperLimit = ...
NSDate *myDate = ...

BOOL inRange = (lowerLimit.timeIntervalSince1970 <= myDate.timeIntervalSince1970) &&
  (upperLimit.timeIntervalSince1970 >= myDate.timeIntervalSince1970);

你也可以使用NSDate的{​​{1}}方法,但我认为比较时间戳更自然。