2011-04-12 9 views
2

[NSDate date]に電話すると、2時間以内に返されます。私は自分のコンピュータの時計の設定を確認して、それらはすべてokです。私はiPhoneの設定をチェックして、タイムゾーンと時計はすべてOKです。シミュレータでさえ、トップツールバーに正確な時刻を表示します。しかし、現在の日付をログに記録しようとすると、それより2時間も短く表示されます。私は見た目が不足していた。NSDateの日付が2h未満になる

+0

何時間帯のログ出力レポートしていますか?あなたは何タイムゾーンですか?おそらくそれだけです:GMTの10:00は、+02:00の12:00よりも2時間早くではありません。同じ時間です。ちょうど異なるフォーマットです。 –

+0

カレンダーを確認しますか?グレゴリオ暦ですか? 'NSLog(@"%@ "、[[NSTimeZone systemTimeZone] description])' – lxcid

+0

グレゴリアンを使ってあなたのタイムゾーンをチェックしてみてください。私がsystemTimeZoneを記録するとき、7200のオフセットを取得します。これは正確に2hです。しかし、私はまだ地元の時間を使うのがベストプラクティスであると考えることはできません。私はそれがフォーマッタで何かだと思うけど、私はまだ何を得るのか? – paxx

答えて

0

私はここに私の解決策を見つけた:How to convert time to the time zone of the iPhone device?

をだからあなたは今までちょうど上記のリンクで提供されているコードを使用してローカルタイムを指すように[NSDate日付]を変更したい場合。そしてGMTにESTからsourceTimeZoneにtimeZoneWithAbbreviationを変更することを忘れていけない...手伝っためもう一度

みんなありがとう(NSDateはGMTに常にあるので)

2

[NSDate date]によって返されるすべての日付は、GMTタイムゾーンにあります。

NSDateFormatterを使用すると、タイムゾーンを設定するだけで正しい時刻が表示されます。

+0

:Dこれはいつも私を魅了するものです。他のすべてが失敗すると、RTFM! – bdares

+3

実際には、オブジェクトには場所に依存しない時間だけが含まれているはずですが、残りの部分はどのように抽出して表示するかによって異なりますが、GMTがチャイムするチャンスはどこですか? –

0

NSLog()ステートメントの出力を注意深く見てください。出力には、標準UTCを使用するタイムゾーンが常に含まれていることがわかります。したがって、タイムゾーンを考慮して、日付は実際には正しいです。

+0

Tnx、この状況でベストプラクティスを発揮してください。現在の現地時間はどのように取得できますか?フォーマッタ経由で? – paxx

関連する問題