【问题标题】:iOS difference between 2 timesiOS相差2倍
【发布时间】:2012-01-14 08:09:42
【问题描述】:

这就是这里的情况。我有当前时间。我也有天数。我想找到两者之间的区别,以纪元格式给出一些过去的时间。即

currentEpochTime - (x 天) 以纪元格式给出过去的时间。

这是我到目前为止所得到的 -

+ (double)currTimeInEpoch
{
    NSDate *todayDate = [NSDate date];
    double ti         = [todayDate timeIntervalSince1970]*1000;
    return ti;    
}

+ (NSString *)timeDiff:(double)epoch diff:(double)diffInDays
{
    double past = epoch - (diffInDays * 24 * 60 * 60 * 1000);
    return [[NSNumber numberWithDouble:past] stringValue];
}

我做的对吗?不确定。有没有更简单的方法来做到这一点?

【问题讨论】:

  • 请记住,硬编码每天的秒数会在某些日子给您带来错误。我不完全记得为什么或何时,但有些日子有更少或更多的秒数。您应该考虑使用更多 Apple 的 API
  • 所以一般的方法是正确的?什么是“更多的苹果 API”?介意我指给他们吗?
  • 使用 NSCalander、NSDate 和 NSDateComponents 之类的东西

标签: iphone objective-c ios date epoch


【解决方案1】:

一个人去很危险。拿着这个。

NSDateComponents *dateComponents = [[NSDateComponents alloc] init];
dateComponents.day = -40; // Number of days to subtract
NSDate *newDate = [[NSCalendar autoupdatingCurrentCalendar] dateByAddingComponents:dateComponents toDate:[NSDate date] options:0];
NSTimeInterval newDateInEpochTime = [newDate timeIntervalSince1970] * 1000;

【讨论】:

  • 为什么是 - ?即负号?
  • 因为我们从当前日期中减去。一个正数将产生一个未来很多天的日期。
  • 不要认为这是有效的。检查这个 - currEpoch:1323198037810.851 epochFor2DaysAgo :1323198037810.86。其中dateComponents.day = 2。而且都是一样的!!
  • 我刚刚在day 设置为 2 的情况下尝试了这段代码,并收到了以下输出。 Current date in epoch time: 1323198250996.670898 | New date in epoch time: 1323371050996.649902。代码按预期工作。
  • 对不起,睡眠不足让我感到厌烦。正在编译一些其他项目并期待结果!有用。感谢您的帮助...
猜你喜欢
  • 2017-10-16
  • 1970-01-01
  • 2019-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多