2

次の出力で日付文字列をフォーマットするために、次の NSDateFormatter コードを使用しています: '2013-02-18 03:23:32.928000 +0000'

これは、出力が「2013-02-18 02:00:40 AM.118000 +0000」に変更されたヨーロッパの iPhone を持つユーザーが追加されるまで、一貫して機能していました。

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];    
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"];    
[dateFormatter setTimeZone:timeZone];    
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSSSSS Z"];

フォーマッタが一貫して動作しない理由についてのヒントはありますか?

4

1 に答える 1

5

iOS のドキュメントには、次の行があります。

iOS では、ユーザーはデフォルトの AM/PM 対 24 時間制の設定をオーバーライドできます。これにより、NSDateFormatter が設定したフォーマット文字列を書き換える可能性があります。

そのため、24 時間形式ではなく AM/PM を取得しています。

のロケールをオーバーライドすることで、これを修正できますNSDateFormatter

[dateFormatter setLocale:
 [[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]] autorelease];
于 2013-02-18T03:33:02.497 に答える