【问题标题】:Current date, convert to multiple timezones, then each needs to check if it is close to another date当前日期,转换为多个时区,然后每个需要检查它是否接近另一个日期
【发布时间】:2012-02-03 21:07:45
【问题描述】:

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

然后,我需要从每个转换后的日期/时间查看该日期是否介于每周更改的其他两个日期之间。我猜测每周变化的时间可能是一系列日期。该时区中的当前日期/时间需要找出数组中需要检查自身的日期/时间。最近的之前和最近的之后。这听起来很令人困惑,只是输入这个。

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

谢谢

【问题讨论】:

    标签: objective-c ios nsdate nstimezone


    【解决方案1】:
    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
    }
    

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

    【讨论】:

      【解决方案2】:

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

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

      您也可以使用NSDate-compare: 方法,但我认为比较时间戳更自然。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-02-24
        • 1970-01-01
        • 1970-01-01
        • 2019-03-06
        • 2017-04-24
        • 1970-01-01
        • 2021-10-23
        • 1970-01-01
        相关资源
        最近更新 更多