質問

私は客観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を使用する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top