1

文字列を NSDate に変換しようとしていますが、形式は常にnilになります

変換しようとしている日付は次のとおりです。

2012-08-16T16:20:52.619000+00:00

私が試している日付形式は次のとおりです。

@"yyyy-MM-dd'T'HH:mm:ss.SSSSSSZZZZ"

日付を次のように変更した場合:

@"2012-08-16T16:20:52.619000+0000" // removing the : from +00:00

それは御馳走ですが、私はそうします

(私も試しました

@"yyyy-MM-dd'T'HH:mm:ss.SSSSSSZZ:ZZ" 
@"yyyy-MM-dd'T'HH:mm:ss.SSSSSSZZ':'ZZ" 

しかし、それもうまくいきませんでした)。

文字列操作を行って最後の「:」を削除せずにこれを行うことさえ可能ですか?

4

3 に答える 3

4

これについて最終検索を行ったところ、使用する必要があることがわかりました

getObjectValue

それよりも

dateFromString

他の誰かがこの問題に遭遇した場合に備えて、そのような文字列を NSDate に変換する方法を投稿します

+ (NSDate *)dateFromString:(NSString *)dateString {
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSSSSZ"];

    NSDate *theDate = nil;
    NSError *error = nil;
    [dateFormat getObjectValue:&theDate forString:dateString range:nil error:&error];
    [dateFormat release];
    return theDate;
}
于 2012-08-17T18:37:14.443 に答える
1

ISO 8601 形式の日付を使用しているようです。これらを Web サービスから取得する場合は、形式に応じて形式が変わります。これをチェックしてください:

http://boredzo.org/iso8601parser/

これにより、形式に従って日付が変換され、形式がわずかに変更された場合でも変換されます。

于 2012-08-17T18:46:30.083 に答える
-1

のようなものはどうですか

[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'Z'"];

Z は一重引用符で囲む必要があります。

于 2012-08-17T18:39:37.293 に答える