文字列を日付に変換する際に奇妙な問題が発生しています:
NSString *goodDateString = @"2012-06-28 16:08:56.871000";
NSString *badDateString = @"2012-06-28 16:11:17.999771";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS"];
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"];
[formatter setTimeZone:timeZone];
NSDate *goodDate = [formatter dateFromString:goodDateString];
NSDate *badDate = [formatter dateFromString:badDateString];
NSAssert(goodDate, @"date is nil"); //passes this test
NSAssert(badDate, @"date is nil"); //fails this test
何らかの理由で、badDateString を日付に変換しようとすると nil が返されます。理由がわかりません。日付文字列に何か問題がありますか?
編集:文字列はPythonサーバーから来ています。私はdateString = date.strftime('%Y-%m-%d %H:%M:%S.%f')
on this date:を使用しています。これは、上記の日付フォーマッタでは解析できないもの2012-06-28 16:11:17
を返します。2012-06-28 16:11:17.999771
Python の人々は、日付の最後の部分を 6 ではなく 3 桁に制限する方法を知っていますか?