0

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) になるのでしょうか?

4

1 に答える 1

0

タイム ゾーン名はロケール固有であり、別の言語では別の意味を持つ場合もあれば、まったく存在しない場合もあります。

例えば。

ICT Îles Crozet 時間 +4
ICT インドシナ時間 +7

安定した機能のために GMT+XX を使用してください。

編集:

タイム ゾーンの詳細については、次のリンクを参照してください: http://unicode.org/repos/cldr/trunk/docs/web/tr35.html#Time_Zone_Fallback

このセクションは「タイムゾーン表示名」と呼ばれていることに注意してください。これらの名前は、解析に使用することを意図したものではありません。それらは表示されることを意図しています (たとえば、ZZZ パターンの結果として)。

于 2012-04-30T11:35:59.803 に答える