自动续订收据到期日

时间:2014-04-21 04:41:32

标签: ios cocoa-touch in-app-purchase nsdate

我正在尝试检查自动续订收据的到期日期,但是在沙箱中,我一购买它并检查日期落后2小时。

例如,如果我在下午5点购买,则到期日期为

2:05(落后2小时+ 5分钟)... 5分钟是沙盒中7天订阅的最后时间。

收据上的日期采用以下格式:

"In App Subscription Expiration Date" = "2014-04-21 02:05:10 +0000";

说,收据上的这个小时不应该与用户时间相匹配吗?

好的我可以将其转换为当地时间,但这里最大的问题是我是否应该总是假设来自Apple的日期将来自+0000 = GMT?

1 个答案:

答案 0 :(得分:0)

  

好的我可以把它转换成当地时间,但这里最大的问题是我应该总是假设来自Apple的日期将来自+0000 = GMT吗?

不,但您应该假设Apple会以相同的格式(包括最后的偏移量)为您提供日期。因此,要将其转换为本地时间,您可以使用以下内容:

NSDate *expirationDate = [[NSDate alloc] initWithString:@"2014-04-21 02:05:10 +0000"]

然后进行比较:

if ([expirationDate timeIntervalSinceNow] < 0) {
    //expired
}
else {
    //not expired
}

Apple很可能总是使用GMT;但是,如果他们觉得每次都需要发送偏移量,你也可以检查一下。