現在、Web サービスからデータをフェッチするアプリがあり、NSXML はそれをコア データに解析します。Core Dataへの加工。updatedAtData フィールドがありませんでした。クライアントに Web サービスに追加するよう依頼したところ、文字列として追加されました。これは、日付を解析するメソッドが行うことです:
- (void)setValue:(id)value forKey:(NSString *)key forManagedObject:(NSManagedObject *)managedObject {
if ([key isEqualToString:@"createdAt"] || [key isEqualToString:@"updatedAt"]) {
NSDate *date = [self dateUsingStringFromAPI:value];
[managedObject setValue:date forKey:key];
} else {
[managedObject setValue:value forKey:key];
}
}
ここまでは順調です。日付は、このメソッドを呼び出すことによって設定されます:
- (NSDate *)dateUsingStringFromAPI:(NSString *)dateString {
[self initializeDateFormatter];
dateString = [dateString substringWithRange:NSMakeRange(0, [dateString length]-5)];
return [self.dateFormatter dateFromString:dateString];
}
しかし、日付は設定されず、nil が返されます。これは日付形式に関係していると思います。これはサーバーが返すものです:
1900-01-01T00:00:00
日付文字列を修正するにはどうすればよいですか?