2014-02-13 63 views
0

我有一個字符串星期二2月23日10:12:48 IST 2014,我想獲取NSdate對象的形式。我使用下面的代碼片段IST時區沒有得到解析

NSString * buildTime = @"Tue Feb 23 10:12:48 IST 2014"; 
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
    [formatter setDateFormat:@"EEE MMM dd HH:mm:ss ZZZ yyyy"]; 
    NSDate *date = [formatter dateFromString:buildTime ]; 

每當我得到零值日期變量。如果我在編譯時將IST更改爲GMT,那麼NSDate即將完成。任何人都可以糾正我在這裏犯的錯誤。

+0

嘗試使用'VVV',而不是'ZZZ'。我發現了另一篇文章,指出這將適用於'IST'時區。 – rmaddy

+0

感謝您的快速回復。但是VVV也不能正常工作 – ajay

回答

1

使用小的 'ZZZ' 而不是 'ZZZ',

NSString * buildTime = @"Tue Feb 23 10:12:48 IST 2014"; 
NSLocale *indianEnglishLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_IN"]; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setLocale:indianEnglishLocale]; 
[dateFormatter setDateFormat:@"EEE MMM dd HH:mm:ss zzz yyyy"]; 
NSDate *date = [dateFormatter dateFromString:buildTime]; 
NSLog(@"date %@",date); 
NSLog(@"string %@",[dateFormatter stringFromDate:date]); 
+0

很好的代碼片段;如果你想改變時區,在dateformatter之後添加''[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@「GMT」]];' – Pawan

+0

這是完美的工作,你可以告訴我,以取代IST明天太平洋時間PST即將到來什麼是initWithLocaleIdentifier參數:,這只是我的小問題... – ajay

+0

您可以嘗試研究PST - 美國/洛杉磯。通過打印[NSLocale availableLocaleIdentifiers]並使用適當的選項來檢查區域設置標識符。 – Dhawal