-1

試行錯誤、調査、再試行しましたが、これをフォーマットできません

日付は「2013-08-08T11:10:09-07:00」です。

"yyyy'-'MM'-'DD'T'HH':'mm':'ssZ" とこれのさまざまな順列のホストを使用してみましたが、役に立ちませんでした。おそらく、サーバーが間違った形式のタイムゾーンを送信していると思います。

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy'-'MM'-'DD'T'HH':'mm':'ssZ"];

return [dateFormatter dateFromString:[dictionary objectForKey:key]];

手がかりはありますか?

前もって感謝します

4

1 に答える 1

2

たとえば、使用しているローカライズされていない ISO オフセットの場合、フォーマットで-07:005Z文字を使用する必要があります。したがって、指定されたソース データの場合、正しい書式文字列は次のようになります。

yyyy-MM-dd'T'HH:mm:ssZZZZZ

現在使用されている技術標準では、日付と時刻の区切り文字をエスケープする必要はありませんが、ジェフがコメントで言及しているように、特にソース日付がサーバーなどから来ている場合は、そうするのはおそらく悪い考えではありません。文字など、ロケール固有の日付と時刻の区切り記号を変更することについての議論があります。また、技術的な観点からそれらを回避しても害はありません。読みにくいだけです。

yyyy'-'MM'-'dd'T'HH':'mm':'ssZZZZZ

詳細については、現在の日付フォーマッタは Unicode Technical Spec #35 に基づいています。#35 の日時パターンの仕様は、http://www.unicode.org/reports/tr35/tr35-25.html#Date_Format_Patternsにあります。

于 2013-10-27T17:10:13.920 に答える