2011-12-22 87 views
0

我正在使用下面的方法將NSString轉換爲NSDate。使用NSDateFormatter與NSString到NSDate轉換的預期輸出偏差

總是當我從字符串構造NSDate時,日期比作爲輸入的一部分提供的當前日子晚一天,小時是18:30:00 +0000。爲什麼這種偏離我提供的。我期待有我提供什麼相同的日期和時間爲00:00:00 +0000

+(NSDate*)convertStringToNSDate:(NSString*)string withFormat:(NSString*)format{ 

    // Convert string to date object 
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
    //[dateFormat setTimeZone:[NSTimeZone localTimeZone]]; 
    [dateFormat setDateFormat:format]; 
    NSDate *date = [dateFormat dateFromString:string]; 
    [dateFormat release]; 
    return date; 
} 

enter image description here

回答

2

這個問題相當經常出現,但我無法找到一個合適的重複(搜索在手機上沒有幫助)。

NSDate表示特定的時間點。當你記錄一個NSDate的值時,它顯示在格林尼治標準時間,這是你的時區後面5.5小時(印度,我假設)。所以價值是正確的。如果您通過日期格式化程序返回該日期,則會再次獲得午夜本地時間,因爲日期格式化程序正在使用您的本地時區。