2013-05-02 193 views
0

我有以下日期和時間2013-04-25 10:42:44 +0000。當我將上述日期轉換爲字符串時,我得到的輸出爲2013-04-25 16:12:44。以下是我用於將日期轉換爲字符串的代碼NSDateformatter將日期轉換爲字符串

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; 
    dateFormatter.timeZone = [NSTimeZone systemTimeZone]; 
    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 
    NSString *dateStr= [dateFormatter stringFromDate:date]]; 
    NSLog(@"dateStr--%@",dateStr); 
+0

時區。通常,NSDate值是UTC,而NSDateFormatter默認爲當地時區(印度)。 – 2013-05-02 14:59:37

回答

0

這個被問了個遍(但很難通過搜索找到)。

當您記錄一個NSDate對象時,您將始終以UTC格式獲取日期。這是目前如何實現NSDatedescription方法。

只要您所看到的差異可以根據您的本地時區與UTC相關,那麼您所看到的正確和預期的行爲就是這樣。

順便說一句 - 沒有理由將日期格式化程序的時區設置爲「系統」時區。這已經在默認情況下完成了。相同的區域設置。如果你想要與當前值不同的東西,只需設置時區或區域設置。

0

我想這是一個時區問題。您格式化的時區設置爲GMT:

dateFormatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];