2011-07-02 58 views
2

我打印的NSDate這樣的:的NSDate沒有返回正確的日期

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

眼下,這是2011年7月1日下午11時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)。 –