2012-11-22 21 views
0

我的web服務返回JSON中的以下日期字符串作爲響應。此日期字符串已在UTC中。我該如何禁止NSDate進行自動時區轉換

{ 「last_updated_at」: 「2012年11月19日7點55分三十秒」}

我解析使用NSDateFormatter像下面的響應日期字符串。

NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 

if ([ticketFields objectForKey:@"last_updated_at"] != [NSNull null]) { 
    self.lastUpdatedAt = [dateFormatter dateFromString:[ticketFields objectForKey:@"last_updated_at"]]; 

    NSLog(@"Time Response string %@", [ticketFields objectForKey:@"last_updated_at"]); 
    NSLog(@"Formatted NSDate %@", self.lastUpdatedAt); 
} 

這是我的日誌輸出

Time Response string 2012-11-21 11:38:44 
Formatted NSDate 2012-11-21 06:08:44 +0000 

正如你所看到的,NSDateFormatter除了解析日期字符串,也認爲該日期字符串在UTC + 530(我的本地時區),並自動通過從給定日期減去530小時將其轉換爲UTC。我不希望發生這種情況。 NSDateFormatter應該從給定的字符串中轉換日期,理想情況下給出以下輸出。

Time Response string 2012-11-21 11:38:44 
Formatted NSDate 2012-11-21 11:38:44 +0000 

回答

2

此數據格式化配置阻止了轉換,並認爲日期響應字符串是UTC日期。

NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]]; 

它工作。

+0

這一個幫助我,謝謝阿南德.. :-) – UnnY

相關問題