1

UTC の文字列があり、それを NSDate に変換したいと考えています。

static NSDateFormatter* _twitter_dateFormatter;
[_twitter_dateFormatter setFormatterBehavior:NSDateFormatterBehaviorDefault];
[_twitter_dateFormatter setDateFormat:@"EEE MMM dd HH:mm:ss ZZZ yyyy"];
[_twitter_dateFormatter setLocale:_en_us_locale];

NSDate *d = [_twitter_dateFormatter dateFromString:sDate];

デバッガーを使用すると、sDate が "2010-03-24T02:35:57Z" であっても d は nil です。

何が間違っているのか正確にはわかりません。

4

3 に答える 3

3

NSDateFormatter オブジェクトを割り当て/初期化する必要があることについても同様ですが、別の問題もあります。日付形式の文字列が、指定した実際の日付と一致しません。

"EEE MMM dd HH:mm:ss ZZZ yyyy"
- vs -
"2010-03-24T02:35:57Z"

そのフォーマット文字列は次のようになります。

"Wed Mar 24 00:07:33 -0400 2010"

日付フォーマット文字列の意味については、 Unicode 標準を参照してください。

于 2010-03-24T04:14:00.487 に答える
0

Apple は、RFC 3339 date-time を解析するためのソース コードを提供しています。ARC を使用している場合は、'autorelease' への呼び出しを削除して、そのソースを調整することをお勧めします。

参考までに、RFC 3339ISO 8601のサブセットであり、1 つの偏差があります (負のゼロ オフセットは RFC 3339 で許可されています)。したがって、Apple のコードは、いわゆる「インターネット スタイル」の RFC 3339 日付時刻と ISO 8601 の単純な日付時刻を処理して、一石二鳥です。

于 2012-09-29T21:16:54.290 に答える