本記事は「UNIX時刻からNSDate型へ変換する - iOSアプリ開発の逆引き辞典」に転記しました。
Store KitのVerifyReceipt(レシート有効性確認)を行うと、以下のようなJSONが返ってきます。
receipt: { "latest_expired_receipt_info" = { "expires_date" = 1306118975000; }; receipt = { }; status = 21006; }
このうち、expires_dateにそのレシートの有効期限が含まれています。expires_dateは、UNIX時刻(1970年1月1日0時0分0秒からのミリ秒)で返ってきます。この数字だけではいつレシートの有効期限が切れてしまうか判りません。UNIX時刻からNSDate型へ変換してみましょう。
UNIX時刻からNSDate型へ変換するには、NSDate dateWithTimeIntervalSince1970:メソッドを使用します。NSDate dateWithTimeIntervalSince1970:メソッドは、1970年1月1日0時0分0秒から指定した秒分だけ進んだNSDate型の時間を返してくれます。単位を合わせる為に、expires_dateを1000で割っておきましょう。
NSString* data; // JSONパースしてきた"expires_date" NSTimeInterval interval = [data doubleValue] / 1000; // ms -> sec NSDate* expiresDate = [NSDate dateWithTimeIntervalSince1970:interval]; NSLog(@"%@", expiresDate);
これで現在の時刻と比較すれば、有効期限がどれくらいかが判るかと思います。