2016-08-11 2 views
-1

iOSアプリケーションを開発中のMacBookを使用しています&実際のiPhoneで実行します。私のMacBook &私のiPhoneの両方が私の現在の時刻を表示2016年8月11日13時18[NSDate date]を使用して現在の時刻を取得しますが、戻り値が正しくありません

である。しかし同時に、次のコードは私に3時間早く、今よりも、現在の時刻を示しています。

NSLog(@"NOW = %@",[NSDate date]); // it prints out 2016-08-11 10:18:17 +0000 

しかし、NSDateドキュメントでは、+date関数は現在の日付と時刻を返します。なぜ私は3時間早く日付時刻を取得するのですか?

+0

日付を印刷すると、UTC(+0000)で表示されます。あなたはUTCより3時間遅いタイムゾーンにいると思います – Paulw11

答えて

0

NSLogを使用してNSDateをログに記録すると、常にUTCで表示されます。 UTC + 3のタイムゾーンにいるようですので、UTCで表示される時間は3時間早くなります。

ローカルタイムゾーンで日付を表示する場合は、日付フォーマッタを作成し、代わりに日付を表​​示します。 (デフォルトでは、問題の日付はユーザーのローカルタイムゾーンを使用します)。

NSDateには固有のタイムゾーンがありません。 NSDateは瞬時に記録します。あなたはそれを見るためにタイムゾーンを使用しなければなりません。

日付は正しいです。あなたは紛らわしい方法でそれを表示しているだけです。

+0

私のiPhoneで現在のシステム時刻と同じ日付を作成するにはどうしたらいいですか? –

+0

他の人がリンクしている重複した質問を参照してください。 –

+0

現時点でNSDateを作成する方法を教えていませんが、使用しないdateformatterが必要です。 –

関連する問題