0

NSDateFormatterが自分で作成したdateStringを誤って解釈するのはなぜですか?

 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

 [dateFormatter setDateFormat:@"YYYY-MM-DD'T'HH:mm:ss.SSSZZZZ"];

 NSDate *now = [NSDate date];

 NSLog(@"Now: %@, Date: %@", [dateFormatter dateFromString:[dateFormatter stringFromDate:now]], now);

次の結果が生成されます。現在:1970-01-06 18:07:05 +0100、日付:2010-01-06 18:07:05 +0100

私はあなたがyyyyとddを使うべきであることを知っています(そしてそれはyyyyとddでは起こりません)、しかしそれはここでのポイントではありません。フォーマッターが作成した文字列を解析するときに、同じ日付を受け取ることを期待しています。

4

1 に答える 1

1

これはうまくいくでしょう

[dateFormatter setDateFormat:@"y-MM-DD'T'HH:mm:ss.SSSZZZZ"];

異なるフラグの詳細については、http: //www.crystalminds.nl/?p=4を参照してください。

YYYYを使用すると、フォーマッタが年を認識しないようです。

[dateFormatter setDateFormat:@"YYYY-MM-DD'T'HH:mm:ss.SSSZZZZ"];
// is equal to
[dateFormatter setDateFormat:@"MM-DD'T'HH:mm:ss.SSSZZZZ"];
于 2010-01-17T12:35:54.330 に答える