7

私は Objective-C の初心者で、クライアント向けの iPhone アプリの作成を担当しました。Java のバックグラウンドはありますが、この Objective-C の経験はほとんどなく、完全なアプリケーションを開発するのはこれが初めてです...

とにかく、私は現在いくつかの問題を抱えています。dateそれらの問題の 1 つは、iOS アプリからPHP の関数の整数値を送信する必要があることです。私は解決策を探し回っていますが、それらはすべて整数値 NSDateではなく、反対の方法 (int から )を扱っています。NSDate

ここで回答したような解決策を試しまし たが、整数ではなく倍精度を返すことは明らかです...
または、これSystem time.

私は現在のシステムの NSDate を次のように取得できることを知っています:

NSDate *theDay = [NSDate dateWithTimeIntervalSinceNow:[[NSTimeZone systemTimeZone] secondsFromGMT]];  

しかし、これを整数 (または long) 値に変換する方法がわかりませんでした。

で取得できるのと同じ値を取得する必要があるだけJavaですSystem.currentTimeMillis()

また、ここスタックオーバーフローで質問するのはこれが初めてです。ここに質問を投稿する際に、すべきこと/すべきでないことがあれば教えてください。

ありがとうございました。

4

1 に答える 1

7

現在の日付を取得するには、これを使用する必要があります。

NSDate *theDate = [NSDate date];

1970 年 1 月 1 日からの秒数を double として取得するには、次のようにします。

NSTimeInterval seconds = [[NSDate date] timeIntervalSince1970];

ミリ秒単位で取得するには、前の値に 1000 を掛けるだけで、追加のコードを必要とせずにコンパイラに整数にキャストさせます。

long long milliseconds = [[NSDate date] timeIntervalSince1970] * 1000;

また、@HotLicks が指摘しているようにSystem.currentTimeMillis()、GMT を使用している場合、現地時間が必要な場合は、次を使用できます。

long long milliseconds = ([[NSDate date] timeIntervalSince1970] 
                        + [[NSTimeZone defaultTimeZone] secondsFromGMT]) * 1000; 

(ただし、ほとんどの Web サービスは GMT を必要とすると思います。)

于 2012-11-11T02:48:46.677 に答える