0

文字列を NSDate オブジェクトに変換する際に問題が発生しましたが、その理由がわかりません。

NSString* tester= @"2012-11-26T10:20:40.187";
NSLog(@"", tester);  //Print the Date String

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'"];
NSDate *date = [formatter dateFromString:tester];           //Store the date

NSDateFormatter *output = [[NSDateFormatter alloc] init];
[output setDateStyle:NSDateFormatterMediumStyle];
NSLog(@"DATE OBJECT:%@\nDATE STRING: \"%@\"", [output stringFromDate:date]);     //Print the NSDate object and the string

しかし、私が得ているように見えるのは次のとおりです。

DATE OBJECT:(null)
DATE STRING: "2012-11-26T10:20:40.187"

.187 と何か関係があると思いますが、よくわかりません。これが重複していたら申し訳ありませんが、これを理解できませんでした。

事前にどうもありがとうございました!

4

1 に答える 1

1

ミリ秒の略語は、TimeZoneであるZではなく「S」です。その例がどこから来たのか正しいドキュメントを読んだようですが、Unicode技術標準#35へのリンクを見逃しました。NsDateFormatter Docuを参照し、「Mac OSXv10.4のフォーマッタはバージョンtr35-4を使用する」を検索してください。

以下で試してください:

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

NSDateFormatterの質問も参照してください

于 2012-11-30T01:37:03.800 に答える