timeIntervalSince1970との奇妙な行動
-
06-09-2019 - |
質問
私は客観C.これでエポックからの秒数を取得しようと奇妙な行動を見ています
NSString *nowTimestamp = [NSString stringWithFormat:@"%d",
[[NSDate date] timeIntervalSince1970]];
出力15907296を、現在のタイムスタンプが1243555623(2009年5月28日19:08 EST @)でなければなりません。 iPhone上のシステム時刻が正確です。私は私が間違ってやっている私の人生のために把握することはできません。任意の勧告?
解決
timeIntervalSince1970は、二重のtypedefであるNSTimeIntervalを返します。 %dは(あなたは%fをしたい)ダブルを印刷する権利フォーマッタではありません。
他のヒント
[[NSDate date] timeIntervalSince1970];
からのリターンは、二重であるとして、あなたはこれを試すことができます:
NSString *nowTimestamp = [NSString stringWithFormat:@"%f",
[[NSDate date] timeIntervalSince1970]];
あなたはNSDate
からの結果は、小数点のint型であることを確認していますか?ドキュメントは、それが二重であると言います。あなたはキャストを試すことができます。
NSNumber
がある場合は、また、時にはあなたは、実際の値の代わりにバックポインタ値を取得します、あなたはアドレスにあるものの実際の内容を取得するにはintValue
、またはdoubleValue
を使用する必要があります。
所属していません StackOverflow