iOS 5 (シミュレーターおよびデバイス) で、タイムゾーン ICT を使用して日付文字列を解析しようとすると、(null) が返されます。奇妙なことの 1 つは、このタイムゾーンが 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) になるのでしょうか?