1

Apple Docs では、NSDateFormatter は仕様に Unicode を使用すると述べています。仕様を読みましたが、この日付の解釈に問題があります:

NSDateFormatter *frm = [[NSDateFormatter alloc] init];
[frm setDateFormat:@"EEE MMM dd HH:mm:ss ZZZ yyyy"];
NSLog(@"Tue Oct 13 09:24:15 +0000 2009 becomes %@", [frm dateFromString:@"Tue Oct 13 09:24:15 +0000 2009"]);

このコードは次を出力します。

2009-10-13 11:37:40.334 test2[1704:20b] Tue Oct 13 09:24:15 +0000 2009 becomes (null)
4

1 に答える 1

2

申し訳ありませんが、すでに理解しています。NSDateFormatter はデフォルトで現在のシステム ロケールを使用します。上記のコード例では、システム ロケールを US 以外に設定した場合にのみ失敗します。これを修正するには、ロケールを日付文字列で使用されるものに設定する直前に、次のようにします。

[frm setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease]];
于 2009-10-13T10:07:04.263 に答える