在 iOS 5(模拟器和设备)上,当我尝试使用时区 ICT 解析日期字符串时,它只返回(null)。一件奇怪的事情是,这个时区在 iOS4.3 中可以正常工作。
NSString *inputDateStr = @"Fri, 06 Apr 2012 13:00:00 ICT";
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss zzz"];
NSDate *inputDate = [df dateFromString:inputDateStr];
NSLog(@"--- INPUT %@ -> %@ ---",inputDateStr, inputDate);
--- INPUT Fri, 06 Apr 2012 13:00:00 ICT -> (null) ---
但是当我尝试其他时区时,比如 PST,它可以工作!?
NSString *inputDateStr = @"Fri, 06 Apr 2012 13:00:00 PST";
--- INPUT Fri, 06 Apr 2012 13:00:00 PST -> 2012-04-06 21:00:00 +0000 ---
我打印出 [NSTimeZone abbreviationDictionary] 并且仍然在那里看到 ICT。所以这个时区应该仍然有效。那么,为什么我会得到(null)?