【问题标题】:Compare NSDate to date downloaded from internet比较 NSDate 与从 Internet 下载的日期
【发布时间】:2013-07-06 13:33:07
【问题描述】:

我的 iPhone 应用从网站下载汇率。它还会在EST 中下载上次更新费率的时间。在我的应用程序中,我想将该时间与[NSDate date] 进行比较。

基本上,我想使用NSTimeInterval 将下载时间与当前EST 进行比较以计算差异。

我查看了此站点并阅读了文档,但不确定如何实现这一点。据我了解,NSDate 没有时区。它是GMT。所以我想将其转换为EST 或将我的日期转换为 GMT 并比较两者。

这就是我将下载的数据转换为日期的方式:

NSDateComponents *dateComps = [[NSDateComponents alloc] init];
    [dateComps setHour:hour];
    [dateComps setMinute:minute];
    [dateComps setDay:day];
    [dateComps setMonth:month];
    [dateComps setYear:year];

    NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

    self.lastUpdatedExchangeRateDate = [calendar dateFromComponents:dateComps];

感谢您就解决此问题的最佳方式提出的意见。

【问题讨论】:

    标签: iphone ios objective-c nsdate nstimeinterval


    【解决方案1】:

    你也应该设置NSDateComponents'timeZone

    dateComps.timeZone = [NSTimeZone timeZoneWithAbbreviation:@"EST"];
    

    使用正确的时区创建NSDate 很重要,因为它代表时间的一秒,并且不知道时区。

    【讨论】:

    • 哇。我没有意识到它会这么简单,但这就是我需要做的就是在我收到的时间设置时区。现在想想就觉得有道理。感谢您为我指明正确的方向。唯一的问题是方法调用是 [NSTimeZone timeZoneWithAbbreviation:@"EST"];我帮你改了。
    猜你喜欢
    • 2011-01-16
    • 1970-01-01
    • 2011-07-30
    • 1970-01-01
    • 2012-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-12
    相关资源
    最近更新 更多