2016-05-08 17 views
-1

私はNSDateで現在の時間を取得する必要があります。私はスクリーンショットのようにこれをやろうとしましたが、最後のnsdateはタイムゾーンが間違っています。 enter image description here現在のタイムゾーンで現在のNSDateを取得する方法は?

+2

デバッグ用のコードイメージは、空腹時に食べ物のイメージとほぼ同じくらい便利です。*コードのイメージではなく、コード*を含めてください。 [編集]ボタンを使用して質問を修正することができます。 – Moritz

+0

「NSDateは絶対時刻であり、タイムゾーンはありません」... –

答えて

-1

NSDateにはタイムゾーンがありません。それは地球上の瞬間を瞬時に記録します。特定の時間帯に表示されます。

NSDateFormatterは、NSDateオブジェクトと日付文字列の間で(どちらの方向にも)変換します。

日付フォーマッタにタイムゾーンをインストールすると、そのタイムゾーンを使用して日付と文字列が変換されます。タイムゾーンを指定しない場合、ユーザーの現在のタイムゾーンが使用されます。あなたはスウィフトprintステートメントまたはNSLogを使用してNSDateを表示しようとした場合

それははUTCでを表示します。常に。

日付フォーマッタを使用して作成した日付文字列であるstrDateを出力するコードが正しいです。 `print(localDate!)という行は無意味です。

繰り返し:NSDateオブジェクトにはタイムゾーンがありません。コンソールにログを記録すると、常にUTCで表示されます。あなたの地方のタイムゾーンでそれらを見たいなら、あなたはやっているように日付フォーマッターを使う必要があります。

+4

...を検索してください。 –

関連する問題