2011-03-16 69 views
1

我在iPhone編程中使用NSDateFormatter時出現問題。 以下是我的代碼片段。NSDateFormatter行爲問題

NSString *inputDate = @"2011-03-14"; 
NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"yyyy-MM-dd"]; 
NSDate *entryDate = [formatter dateFromString:inputDate]; 
[formatter release] 

我得到的結果是

2011-03-13 16:00:00 +0000

這是GMT相當於2011-03-14 00: 00:00。 (我的時區是格林尼治標準時間+08:00)

爲什麼我得到這個?如何獲得2011-03-14 00:00:00作爲結果?

謝謝。

〜一月

回答

2

您可以設置使用

[formatter setTimeZone:...] 

的時區。或者我會嘗試只是

NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"..."]; 
[formatter setLocale:locale]; 
+0

感謝您的回覆。我嘗試了兩種,但結果相似。此外,我的格式化程序的時區和區域設置默認情況下已正確設置爲本地設置。 – Jan 2011-03-16 07:59:53

0

設置格式化的語言環境,您可以嘗試將時區添加到您的原始字符串

NSString *inputDate = @"2011-03-14+0800"; 
NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"yyyy-MM-ddZZZ"]; 
NSDate *entryDate = [formatter dateFromString:inputDate]; 
[formatter release] 
+0

感謝您的回覆。但不幸的是,這並沒有工作:( – Jan 2011-03-16 08:00:21