2011-07-02 6 views
2

を返さない:今はNSDate私はこのようなNSDateを印刷しています正しい日付

NSDate *date = [NSDate date]; 
NSString *stringDate = [data description]; 

、それは2011年7月1日23:43です。私のiPodはトップバーにもそう言います。しかし、stringDateが表示されます:2011-07-02 03:43:46 +0000

これは明らかに間違っています。私は何百万回もNSDateを使用しましたが、この問題は一度もありませんでした。何が間違っていますか? おかげ

+0

[NSDateは異なるタイムゾーンで表示されます。つまり、ローカルタイムゾーン(GMT-400)からPST](http://stackoverflow.com/questions/2503397/nsdate-expressed-in-different-time-zones) -ie-local-time-zone-gmt-400-to-pst) –

答えて

4

あなたの地域の時間がオフセット-04である:00? NSDateは、日付を表示するときに自動的に時間オフセットを調整します。お試しください。

NSString *str = [date descriptionWithLocale:[NSLocale currentLocale]]; 

正しい日付が表示されます。

+0

お返事ありがとうございます。私はあなたが何を意味するか分かりません。この時間オフセットはどのように変更しますか?私はそれを-04:00に設定していません。 – sumderungHAY

+0

@sumderungHAY、NSDateFormatterを使用できます。 – EmptyStack

3

あなたはGMT -4タイムゾーンにいますか?その場合、2011-07-02 03:43:46 +00002011-07-01 11:43:46 -4000のように、あなたに与える結果は正しいでしょう。

+0

はい。だから、私はどのようにして正しい時間の文字列を取得するのですか? – sumderungHAY

+0

@sumderungHAY:['NSDateFormatter'](http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html) –

+0

を見てください[この質問](http://stackoverflow.com/q/2503397/239076)。 –

関連する問題